我知道將電子郵件存入數據庫然後讓一些定期作業處理實際的發送。 我知道,ar_mailer寶石這樣做。什麼是最好的方式來處理在Rails中發送很多電子郵件?
還有其他方法嗎?有更好的選擇嗎? 簡單地說,在Rails中處理髮送很多電子郵件的最佳方式是什麼?
我知道將電子郵件存入數據庫然後讓一些定期作業處理實際的發送。 我知道,ar_mailer寶石這樣做。什麼是最好的方式來處理在Rails中發送很多電子郵件?
還有其他方法嗎?有更好的選擇嗎? 簡單地說,在Rails中處理髮送很多電子郵件的最佳方式是什麼?
ar_mailer是我知道發送多封電子郵件的最佳方式。這是非常直觀的設置。我會檢查出official documentation和這個really good blog post。
D進制
我們離裝載較長的任務,不僅是電子郵件發送,但使用Workling和Starling也有一些其他的事情(詳見如何使用Railscast)。也有替代品,Github is usingdelayed_job。
除了其他的答案我只是想補充:
ar_mailer可用於發送電子郵件的「批」的工作,但如果你正在發送大量大量的電子郵件(我想這樣Aweber在這裏,或CampaignMonitor,每小時可能有數十萬)我不確定ar_mailer是否理想。原因是它爲每個電子郵件添加了單獨的記錄到數據庫。想象一下你是Aweber,並且有一位客戶發送一封電子郵件給他的10,000人的名單。您只需創建10,000個活動記錄對象並將其全部10,000個保存到數據庫。這在驗證和回調等方面非常昂貴。現在想象一下,您有100位客戶,每個小時都有10,000名用戶發送電子郵件。我認爲你的數據庫會很痛苦,除非你可以消除驗證/回調等,並進入較低級別的數據庫調用。
另一種選擇是將所有的排隊傳遞給Postfix或類似的東西。如果Postfix以某種方式死在隊列的中間,那麼你可能就沒有辦法從你的Rails應用程序裏面來確定它了,所以它在某種程度上可以解耦,但可能效率更高。我沒有嘗試任何這個順便說一句,只是想大聲。
「多」是多少? – 2009-01-25 20:46:16