Стоит ли ожидать очереди-планировщика для обработки / много / отложенных заданий? - PullRequest
1 голос
/ 16 декабря 2011

В настоящее время я использую resque и resque-scheduler в приложении, которое будет обрабатывать много повторяющихся заданий - «делай это каждый час», «делай это каждый день» и т. Д. В настоящее время я просто ставлю в очередьпри следующем запуске задания в самом задании очередь HourlyJob имеет .enqueue_at (1.hour.from_now, HourlyJob) и т. д.

Должен ли я делать это?Мне кажется, что у меня должно быть статическое повторяющееся задание, использующее функции типа хрон cres-планировщиков, которые затем планируют, скажем, на следующие 5 минут отложенных заданий ... но все, что я на самом деле делаю, это перемещаю работу из (возможнобыстрый, основанный на Redis) Resque-Scheduler для моего (возможно, менее хорошо реализованного, основанного на MySQL) кода, конечно?

Что-то не так с тем, как я это делаю сейчас?

1 Ответ

0 голосов
/ 16 декабря 2011

Я бы лично использовал стиль cron, предоставленный resque-scheduler, ваш сценарий использования именно для чего он был построен:

  • Вы более четко указываете, что это повторяющиеся задания.
  • Все находится в одном файле YAML, а не в нескольких классах / модулях заданий.

Поставив в очередь следующий запуск задания внутри фактического задания:

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

Хмель, это помогает.

...