1

我正在使用“resque” gem和“ resque-scheduler ”。我每周必须发送 10,000 多封电子邮件(每天大约 1,500 封)。我的电子邮件表有一个名为“已发送”(真/假)的布尔值。

如果我使用“enqueue_at”方法并且只有一堆排队的电子邮件(不确定它们是否真的在resque中排队..也许有人可以澄清这一点),或者我做一个cron类型的任务会更好吗?并且只运行所有“已发送”布尔值为“假”的电子邮件并在发送电子邮件后将其更新为“真”?

哪个是最好的解决方案&为什么?

提前致谢

4

1 回答 1

2

使用 cron

  • 自动拉出未发送的电子邮件并将其标记为“已发送”
  • 仅每 X 次检查一次电子邮件(您在 cron 文件中设置的时间)

使用 enqueue_at

  • 你必须明确地告诉作业在 X 时间内触发 ( Resque.enqueue_at(5.days.from_now, SomeJob))

我会使用 resque-scheduler 执行一项 cron 任务,并在我的工作人员中仅选择未发送的电子邮件来处理它们,最后将它们标记为已发送。

于 2013-06-26T11:47:32.970 回答