2017-08-26 30 views
0

我正在開發電子郵件營銷活動模塊,用戶可以在其中創建EmailCampaign並選擇一些標準選項,並可以向成千上萬的用戶發送電子郵件。使用c發送預定的電子郵件#

在我現在如下發現實現的2種方式,但需要知道哪種方法會更好用:

1)第一個Windows服務不斷檢查數據庫在電子郵件的時間間隔和插入數據的n分鐘適用於合格電子郵件活動的隊列表&第二項服務不斷從隊列中取走大約1000條記錄併發送它們。

2)在Web應用程序,在應用程序啓動創建採取所有電子郵件廣告,並使用石英(或任何其他背景的工作助手)執行(生成隊列以及在規定的時間發送電子郵件)安排他們。在這種方法中,我認爲它可能會創建內部線程,會影響Web應用程序的工作嗎?

+1

許多打斷你的應用程序用戶好的問題根據專家的經驗產生一定程度的意見,但對這個問題的回答往往基於意見而不是事實,參考或具體專業知識。 – Enigmativity

回答

0

方法1:與系統分離。在應用程序本身沒有負載。但要定期清理數據庫。爲電子郵件表格使用UniqueIdentifier ID而非標識,以便清除數據不會導致間歇性數字的丟失。您只應將電子郵件模板保留在數據庫中。將其綁定到運行時的數據併發送郵件。這取決於需求,但您是否需要始終爲活動數據庫中的每個人保留已發送的郵件。

方法2:將在任何情況下都對Web應用程序的內存消耗有影響,並可能您的應用程序變慢。有多個服務器還是一個?如果有多個,他們將工作在相同的數據,併發送多個郵件相同的東西。這些實例如何在它們之間同步。您可能需要在實例之間分區數據。或者他們也會在運行時使用SQL數據庫來獲取數據進行處理。如果只有服務器,則無論如何這都會運行。

如果在數據庫中現有的數據,也可以計劃使用SQL數據庫一樣,如果沒有在電子郵件所需的格式。一份SQL作業會更好地處理它。

此外,您還可以通過通過Windows任務調度程序在多次運行PowerShell腳本/窗口EXE它連接到數據庫,併發送郵件做這件事情。

您還可以使用Hangfire在.net中進行後臺處理。保持低背景內存消耗並使用適當的錯誤處理。

https://www.hangfire.io/

0

除非有一些操作/商業的東西,這將使#1痛苦的,我會用#1去,因爲下面...

  • 如果業務人員想要的電子郵件格式改變(例如,將徽標放在左側而不是右側,將取消訂閱文本改爲藍色而不是綠色......),創建廣告系列的人就不會遇到任何停機時間。如果他們建立指定大量用戶的活動

  • 系列製作人也不會被拖慢。

  • 如果你想調整在發送電子郵件選項(例如與負荷分佈玩,使用不同的服務器進行不同的東西,等等),你不會有部署你的web應用的新版本具有新的調整

因人而異