2010-02-05 99 views
2

我正在構建關於用戶向他的朋友發送加入邀請的可能性的Web應用程序中有一項要求。這些邀請通過Invitation模型存儲在數據庫中。用戶可以一次發送多個邀請。在post_save上發送邀請電子郵件或在django視圖中一次發送邀請郵件?

你認爲什麼更合適:在後臺視圖中一次發送所有電子郵件或在邀請post_save中發送一次?

在發送一封電子郵件時是否會有相當大的性能開銷?

回答

6

如果這是實時應用程序和用戶體驗很重要,那麼我建議您避免在post_save處理程序或甚至視圖中發送任何與電子郵件相關的任何內容。

原因是:SMTP可能關閉,網絡連接可能關閉,網絡可能啓動,但速度可能是蝸牛等。在每種情況下,您的程序都會中斷,或者用戶等待並等待等待。 ..這對商業不利。

解決方案是編寫/購買/尋找單獨的電子郵件調度程序,它能夠輕鬆處理所有這些情況,在出現故障時提醒管理員,動態切換SMTP門,另外它可以跟蹤彈回等。

然後,在你post_save處理程序,只添加這樣的事情:

email_dispatcher.add_to_queue(my_email) 

關於現成的解決方案 - code.google COM的快速掃描導致http://code.google.com/p/django-mailer/,但我沒有使用它,不能讓建議。

+0

django-mailer很棒。請記住,所有的郵件都將進入隊列,並且必須有某種類型的進程正在運行,以清除所述隊列。這雖然記錄。 – istruble 2010-02-05 17:48:17

相關問題