Использование очередей задач для планирования выборки / анализа нескольких каналов в App Engine (Python) - PullRequest
0 голосов
/ 19 июля 2009

Скажем, у меня было более 10000 каналов, которые я хотел периодически получать / анализировать. Если бы период был, скажем, 1ч, это было бы 24x10000 = 240 000 выборок.

Текущее ограничение в 10 Кб API-интерфейса очереди задач исключает одно из настройка одной задачи на выборку. Как тогда можно это сделать?

Обновление: RE: выборка nurls для задачи - учитывая 30-секундный тайм-аут на запрос в какой-то момент, это может достичь потолка. Является в любом случае существует возможность его распараллелить, чтобы каждая очередь задач инициировала набор асинхронных параллельных выборок, каждая из которых может занять менее 30 секунд, но для совместной обработки может потребоваться больше.

Ответы [ 3 ]

3 голосов
/ 19 июля 2009

Вот API асинхронного urlfetch:

http://code.google.com/appengine/docs/python/urlfetch/asynchronousrequests.html

Набор из множества запросов с разумным сроком (выделите себе некоторый запас по таймауту, чтобы, если один запрос истек, у вас все еще было время обработать остальные). Затем дождитесь каждого из них по очереди и обработайте их по завершении.

Я сам не использовал эту технику в GAE, так что вы сами находите какие-то неочевидные ошибки. К сожалению, в API нет вызова в стиле select() для ожидания выполнения первого из нескольких запросов.

2 голосов
/ 19 июля 2009

2 выборки за задачу? 3

0 голосов
/ 19 июля 2009

Группируйте выборки, поэтому вместо очереди 1 выборки вы ставите в очередь, скажем, рабочий блок, который выполняет 10 выборок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...