Google App Engine - используйте очереди задач или отложенные задания - PullRequest
5 голосов
/ 05 февраля 2011

В Google App Engine есть два метода для запуска заданий на более поздний момент: Очереди задач и Отложенные переходы

Они поддерживают все те же функции, что и яможет сказать (например, отложенное задание может быть помещено в определенную очередь задач, чтобы вы могли ограничить выполнение) - но отложенные задания выглядят гораздо проще для реализации и более гибкими.?В каких случаях вы хотели бы использовать очереди задач поверх отложенных заданий?

1 Ответ

11 голосов
/ 05 февраля 2011

Я не уверен, что вы заметили это, но в документации по отложенным действиям есть этот раздел в конце:

Вам может быть интересно, когда использовать ext.deferred, а когда придерживаться встроенного API очереди задач. Вот наши предложения.

Вы можете использовать отложенную библиотеку, если:

  • Вы только слегка используете очередь задач.
  • Вы хотите реорганизовать существующий код для запуска в очереди задач с минимальным количеством изменений.
  • Вы пишете одноразовую задачу обслуживания, такую ​​как миграция схемы.
  • Ваше приложение имеет много разных типов фоновых задач, и написание отдельного обработчика для каждого из них будет обременительным.
  • Ваша задача требует сложных аргументов, которые не легко сериализуются без использования Pickle.
  • Вы пишете библиотеку для других приложений, которые должны выполнять фоновую работу.

Вы можете использовать API очереди задач, если:

  • Вам необходим полный контроль над тем, как задачи ставятся в очередь и выполняются.
  • Вам нужно лучшее управление очередью или мониторинг, чем предоставляет отложенный.
  • У вас высокая пропускная способность, и накладные расходы важны.
  • Вы строите большие абстракции и нуждаетесь в прямом управлении задачами.
  • Вам нравится модель webhook лучше, чем модель RPC.

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

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