максимальное количество заданий для запуска в отложенном задании - PullRequest
0 голосов
/ 19 января 2019

Я реализовал delayed_job, который отправляет электронные письма, но у провайдера есть ограничение в 2000 электронных писем в час. Если пользователь помещает 6000 писем в очередь, я хотел бы выполнить только первые 2000 писем, затем подождать 1 час и выполнить еще 2000.

Есть ли способ добиться этого с помощью отложенной работы? Я не смог найти ничего полезного в документации о том, как указать максимальное количество выполняемых заданий, а также указать, когда задание может быть перезапущено. Он просто использует формулу «При ошибке задание снова планируется через 5 секунд + N ** 4, где N - количество повторных попыток». но я хотел бы установить, если что-то находится в указанной очереди, выполнять каждые 65 минут и максимум 2000. Пока мой конфиг содержит:

Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.sleep_delay = 60
Delayed::Worker.max_attempts = 30
Delayed::Worker.max_run_time = 30.minutes
...