2010-02-26 77 views
2

我正在構建一個Web應用程序,它將允許用戶管理簡單任務或待辦事項。作爲其中的一部分,我想每天向用戶發送電子郵件提醒他們的任務。儘管如此,我希望系統中的每個用戶指定他們在什麼時候提醒他們。例如,一個用戶可以指定在上午8點收到他們的電子郵件,而另一個用戶可能選擇在晚上7點收到他們的電子郵件。使用.Net,構建和構建這種「提醒」服務的最佳方式是什麼?此外,作爲未來階段,我想將提醒擴展到短信和/或其他形式的通知。在.Net中創建提醒服務的最佳方式是什麼?

任何指導,將不勝感激。

回答

0

我會創建一個運行所有時間的服務,每分鐘檢查一次任務以執行預成型。然後,您可以預先執行您需要的任何操作。您可以創建一個網站供用戶使用,該網站將轉到該服務也讀取的數據庫。如果您希望獲得更多的花式,並且WCF界面可以讓您的服務訪問該服務並將所需的提醒存儲在數據庫中。

1

你的問題有點廣,但一般有兩種方法在Windows處理重複出現的任務:

  • 寫服務,設計,它定期檢查任務。你可以讓它每一次都輪詢一個數據庫,並且執行當時的任何提醒(標記完成)。
  • 將程序作爲Windows計劃任務運行(與Microsoft等效的cron)。每小時運行一次,並檢查上面的數據庫。

我假設你知道如何從.NET發送電子郵件 - 這非常簡單,大多數運營商都有郵件到SMS網關。

1

我想你可以做到這一點有兩種方法:

  • Windows服務的背景下,其調查數據庫,尋找項目,在當前的時間,如果發現沒有睡覺運行,循環

    這已經足夠好了,但是如果突然在30秒內突然有1000件物品需要處理,可能無法很好地擴展,因爲這樣做需要很長時間。您可以通過在MSMQ的基礎上構建它來解決這個問題,它允許分佈在不同的機器上,等等。

  • 類似的Windows服務,但它可以通過某種脈衝/等待系統進行交互,每當新的數據庫條目生成時就會觸發它。然後,它可以合法地睡覺,但有點「脆弱」。

我可能會採用第一種方法。

相關問題