在哪里放置循环?在抽成任务上还是在延迟工作上?

Where to put the loop? On the rake task or on delayed job?

我想知道发送一堆电子邮件最有效的方法。

这取决于你有多少后台工作者。如果您有多个工作人员,那么第一个选项(单独创建每个作业,在 rake 任务中使用循环)要好得多,因为它允许这些任务 运行 并行。

这也让您更容易编写工作程序方法,因为您无需担心在工作程序碰巧翻倒或被终止时重新运行整个列表。 (尽管确保您的工作人员在可行的情况下是幂等的仍然是一个好习惯!)