Если мне нужно создать повторяющиеся задачи в отложенных заданиях, какое чистое решение? У меня есть задача импорта, которую я хочу запускать каждые 5 минут, но я не хочу запускать rails/rake, чтобы сообщить ей о создании отложенного задания, которое можно взять. Если Rails уже работает в системе, возможно, я могу просто создать HTTP-запрос, который заставит приложение rails запустить DJ? Я мог бы поместить эту задачу cron в сценарий ruby, который запускается каждые 5 минут, отправляя запросы на сервер, но не запуская рельсы. Что вы думаете?
Повторяющиеся задачи в отложенных заданиях без запуска Rails?
Ответы (3)
Эта вилка delayed_job имеет встроенное повторение (и могут быть другие вилки, которые делают то же самое):
http://github.com/andrewroth/delayed_job
Подход cron
все еще кажется довольно чистым. Для этого нужно запустить только вызов rake
, а не полный сервер Rails. Для работы Rake не требуется, чтобы Rails работал.
Однако, если вам действительно не нравится такой подход, вы можете сделать так, чтобы повторяющиеся задания повторно ставились в очередь, когда они обрабатываются, установив run_at
время равным 5 минутам (или любым другим значениям) в будущем. . Очевидно, вам нужно будет заполнить очередь в первый раз и убедиться, что сервер delayed_job
продолжает работать.
Об этом... У меня такое же желание, я планирую иметь cron для запуска запроса curl по определенному маршруту на моем сайте каждые 5 минут, поэтому он запускает действие с результатом, и я почти уверен, что он выполнялся только один раз.
В мои цели входит: вручение значков и составление некоторых средних показателей.