Rails:发送预定的电子邮件

时间:2013-06-26 07:56:38

标签: ruby-on-rails

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:2)

使用cron

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

使用enqueue_at

  • 您必须在X时间(Resque.enqueue_at(5.days.from_now, SomeJob)
  • 明确告知作业

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