Повторяющиеся задачи в отложенных заданиях без запуска Rails?

Если мне нужно создать повторяющиеся задачи в отложенных заданиях, какое чистое решение? У меня есть задача импорта, которую я хочу запускать каждые 5 минут, но я не хочу запускать rails/rake, чтобы сообщить ей о создании отложенного задания, которое можно взять. Если Rails уже работает в системе, возможно, я могу просто создать HTTP-запрос, который заставит приложение rails запустить DJ? Я мог бы поместить эту задачу cron в сценарий ruby, который запускается каждые 5 минут, отправляя запросы на сервер, но не запуская рельсы. Что вы думаете?


person tesserakt    schedule 20.07.2010    source источник


Ответы (3)


Эта вилка delayed_job имеет встроенное повторение (и могут быть другие вилки, которые делают то же самое):

http://github.com/andrewroth/delayed_job

person ntalbott    schedule 20.07.2010
comment
Это на самом деле именно то, что мне нужно. Я могу использовать Whenever для загрузки ди-джеев во время загрузки, и тогда они будут запускаться, когда они мне понадобятся. - person tesserakt; 20.07.2010

Подход cron все еще кажется довольно чистым. Для этого нужно запустить только вызов rake, а не полный сервер Rails. Для работы Rake не требуется, чтобы Rails работал.

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

person bjg    schedule 20.07.2010

Об этом... У меня такое же желание, я планирую иметь cron для запуска запроса curl по определенному маршруту на моем сайте каждые 5 минут, поэтому он запускает действие с результатом, и я почти уверен, что он выполнялся только один раз.

В мои цели входит: вручение значков и составление некоторых средних показателей.

person Fabiano Soriani    schedule 17.12.2010