Лучший способ опроса веб-службы (например, для приложения Twitter) - PullRequest
5 голосов
/ 10 января 2009

Мне нужно опросить веб-сервис, в данном случае Twitter API, и мне интересно, каково обычное мнение об этой теме. Я не уверен, важно ли это, но в прошлом я всегда находил отзывы полезными.

Пара сценариев, которые я придумал:

  1. Процесс запроса начинается каждые X секунд, например, задание cron запускает скрипт python

  2. Процесс постоянно зацикливается и запрашивает на каждой итерации, например ... ну, вот где я вхожу в незнакомую территорию. Должен ли я запустить скрипт Python, который не заканчивается?

Спасибо за ваш совет.

ps - о деталях твиттера: я знаю, что он отправляет электронные письма для следующих и прямых сообщений, но иногда может потребоваться гибкость парсинга @replies. В этих случаях я считаю, что опрос настолько хорош, насколько это возможно.

pps - Twitter ограничивает ботов до 100 запросов в 60 минут. Я не знаю, ограничивает ли это также просмотр веб-страниц или чтение RSS-каналов. Кто-нибудь знает, как легко или сложно попасть в белый список?

Еще раз спасибо.

Ответы [ 2 ]

5 голосов
/ 10 января 2009

«Я просто запускаю скрипт на python, который не заканчивается?»

Как эта незнакомая территория?

import time
polling_interval = 36.0 # (100 requests in 3600 seconds)
running= True
while running:
    start= time.clock()
    poll_twitter()
    anything_else_that_seems_important()
    work_duration = time.clock() - start
    time.sleep( polling_interval - work_duration )

Это просто петля.

0 голосов
/ 10 января 2009

У вас должна быть страница, похожая на страницу Ping или Heartbeat. Если у вас есть другой процесс, который «щекочет» или попадает на эту страницу, обычно вы можете сделать это на панели управления вашего веб-хостинга или использовать cron, если у вас есть локальный доступ. Затем этот сценарий может хранить статистику того, как часто он опрашивается в базе данных или в каком-либо хранилище данных, а затем вы будете опрашивать службу так часто, как вам действительно нужно, конечно, ограничивая ее тем, каким будет ограничение поставщиков. Вы определенно не хотите (и, конечно, не хотите полагаться) на сценарий Python, который «не заканчивается». :)

...