Подтвердить что ты не робот

Google App Engine - Очереди задач и вакансии Cron

Последняя версия приложения Google App Engine поддерживает новый API очереди задач в Python. Я сравнивал возможности этого API с уже существующим сервисом

4b9b3361

Ответ 1

Я бы сказал "вроде". То, что нужно запомнить о очередях задач, следующее:

1) предел операций в минуту/час/день - это не то же самое, что повторять что-то через регулярные промежутки времени. Даже если размер маркера маркера установлен равным 1, я не думаю, что вам гарантировано, что эти повторения будут равномерно распределены. Это зависит от того, насколько они серьезны, когда говорят, что очередь реализована как маркерная ведро, и должен ли этот оператор быть гарантированной частью интерфейса. Это лаборатория, пока ничего не гарантировано.

2), если задача не выполняется, тогда она запрашивается. Если задание cron выходит из строя, оно регистрируется и не повторится, пока оно не появится снова. Таким образом, задание cron не ведет себя так же, как задача, которая добавляет копию самого себя, а затем обновляет ваш канал или как задачу, которая обновляет ваш канал, а затем добавляет копию самого себя.

Вполне возможно, что можно будет макетировать задания cron с помощью задач, но я сомневаюсь, что это того стоит. Если вы пытаетесь обойти работу cron, которая занимает более 30 секунд для запуска (или удаляет любой другой лимит запроса), вы можете разделить работу на части и выполнить задание cron, которое добавит все части к очереди задач. Был какой-то разговор (в блоге GAE?) Об асинхронном urlfetch, который может быть лучшим способом обновления RSS-каналов.

Ответ 2

Я не очень хорошо разбирался в различиях, пока не просмотрел видеоролик Google I/O, где они объясняют это. Официальный источник, как правило, лучший.

youtube video

слайды из презентации

Ответ 3

То, как я смотрю на это, состоит в том, что если я просто разбираю один RSS-канал, работа Cron может быть достаточно хорошей. Если мне нужно проанализировать X количество RSS-каналов, указанных во время выполнения пользователем или любой другой системной переменной, я бы каждый раз выбирал задачи.

Я только говорю это, потому что в прошлом мне приходилось пересматривать многие пользовательские поисковые запросы Twitter с регулярными интервалами, а с заданиями Cron я закончил создание очень плохой системы Queuing для выполнения запросов, которые нужно было запустить - это не Это не помогло, и наименьший интервал, который может выполнять задание cron, составляет всего 1 минуту (у меня было больше запросов на выполнение, чем минут в день).

Самое интересное в задачах состоит в том, что вы можете дать им ETA, так что вы можете сказать, что я хотел бы, чтобы это было выполнено 47 секунд в будущем, или я хотел бы, чтобы это было выполнено в 12:30.