2013-06-26 84 views
1

我使用沿着"resque" gem與「resque-scheduler」。我必須每週發送超過1萬封電子郵件(每天約1,500封)。我的電子郵件表有一個名爲「sent」的布爾值(true/false)。的Rails:發送定期電子郵件

如果我使用「enqueue_at」方法&只是有一堆排隊的電子郵件(不知道他們是否真的排隊在resque ..也許有人可以澄清這一點)或者它會更好,如果我做一個cron類型的任務,並且只需運行「發送」布爾值爲「false」的所有電子郵件&在發送電子郵件後將其更新爲「true」?

這將是最好的解決辦法&爲什麼呢?

在此先感謝

回答

2

使用一個cron

  • 自動拉出未發送電子郵件,並將其標記爲「已發送」
  • 只檢查郵件每隔X時間(你在設定的時間你的cron文件)

使用enqueue_at

  • 你必須明確地告訴工作在X時間火(Resque.enqueue_at(5.days.from_now, SomeJob)

我會用resque調度做一個cron任務,並在我的工人只選擇未發送的電子郵件來處理它們和最後標記爲已發送。

+2

爲推動這一@喬恩看看https://github.com/zapnap/resque_mailer – David

+0

感謝大衛 - 皮埃爾。我對鐵軌還是個新手,只是有點過分想這個。 – Jon