我正在構建關於用戶向他的朋友發送加入邀請的可能性的Web應用程序中有一項要求。這些邀請通過Invitation
模型存儲在數據庫中。用戶可以一次發送多個邀請。在post_save上發送邀請電子郵件或在django視圖中一次發送邀請郵件?
你認爲什麼更合適:在後臺視圖中一次發送所有電子郵件或在邀請post_save
中發送一次?
在發送一封電子郵件時是否會有相當大的性能開銷?
我正在構建關於用戶向他的朋友發送加入邀請的可能性的Web應用程序中有一項要求。這些邀請通過Invitation
模型存儲在數據庫中。用戶可以一次發送多個邀請。在post_save上發送邀請電子郵件或在django視圖中一次發送邀請郵件?
你認爲什麼更合適:在後臺視圖中一次發送所有電子郵件或在邀請post_save
中發送一次?
在發送一封電子郵件時是否會有相當大的性能開銷?
如果這是實時應用程序和用戶體驗很重要,那麼我建議您避免在post_save處理程序或甚至視圖中發送任何與電子郵件相關的任何內容。
原因是:SMTP可能關閉,網絡連接可能關閉,網絡可能啓動,但速度可能是蝸牛等。在每種情況下,您的程序都會中斷,或者用戶等待並等待等待。 ..這對商業不利。
解決方案是編寫/購買/尋找單獨的電子郵件調度程序,它能夠輕鬆處理所有這些情況,在出現故障時提醒管理員,動態切換SMTP門,另外它可以跟蹤彈回等。
然後,在你post_save處理程序,只添加這樣的事情:
email_dispatcher.add_to_queue(my_email)
關於現成的解決方案 - code.google COM的快速掃描導致http://code.google.com/p/django-mailer/,但我沒有使用它,不能讓建議。
django-mailer很棒。請記住,所有的郵件都將進入隊列,並且必須有某種類型的進程正在運行,以清除所述隊列。這雖然記錄。 – istruble 2010-02-05 17:48:17