我已经实现了delay_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