Cron и delayed_job - использование обоих в тандеме для Heroku - PullRequest
1 голос
/ 19 октября 2011

Правильно ли я считаю, что наиболее эффективный способ запуска фонового процесса каждые 2 часа на heroku (например, отправка электронных писем / сбор статистики и т. Д.) - это использовать cron, назначенный на каждые два часа, который затем вставляет элементы вЗадержка в очереди delayed_jobs (на основе драгоценного камня dj), которую затем мгновенно забирает работник heroku?

Кроме того, как только приложение будет запущено в производство, я прав, полагая, что экономически эффективный подход заключается внанял ли огонь наемного работника, чтобы он выполнил задание, а затем выключил его?

Есть ли другие подходы, которые я должен рассмотреть?Я не выполнял такую ​​отложенную работу раньше - в процессе разработки и в базовом производственном тестировании, прежде чем начать работу. У меня все это основано на cron-сервере heroku - но на производстве это не кажется разумным, если нагрузка на работу cron увеличивается.

Любые указатели на достойные альтернативные подходы приветствуются!

1 Ответ

2 голосов
/ 19 октября 2011

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

Другой вариант для синхронизации - заставить отложенное задание перепланировать себя, когда оно завершится, используя доступный аргумент: run_at. Затем работник сделает это, когда настанет время (хотя я никогда не проверял, это работало бы с Hirefire, поскольку я думаю, что они просто смотрят на количество заданий)

В целом это довольно здравый подход, и я бы использовал.

...