2012-02-05 57 views
0

我爲客戶發佈了一個項目並設置拍賣時間的客戶建立了一個招標網站。該項目首先在待處理狀態,直到管理員批准爲止,或者自用戶第一次發佈後經過12小時後。從此,該物品獲得發佈,其他用戶可以對其進行出價。一旦拍賣期結束後,該項目應關閉和出價最高者勝項...根據時間限制更改項目的狀態

除此之外,我需要發送電子郵件通知...

  • 到管理員一旦發佈新的項目。
  • 一旦他贏得一件物品,就給勝者。
  • 拍賣結束後,物品的所有者。
  • 對於管理員,一旦拍賣結束並有一個贏家(即:人們實際出價)。

目前我在做什麼是調用一些方法,其中檢查是否存在已通過12小時時間,就使他們發佈的任何未決的項目,以及是否有公佈了已通過的項目我的業務層他們的拍賣時間會關閉他們。這種方法被稱爲從幾個地方,如網站的主頁,項目的搜索頁面和其他...這實際上導致我的問題(Refer to this question)。因此,我認爲值得找到一種替代解決方案,以幫助我擺脫所有這些最可能由於糟糕的設計而產生的問題。

  1. 我是否應該通過從一個地方調用該方法並相應地發送電子郵件來集中這一點?
  2. 我應該將這件事情委託給某種計劃任務嗎?在這種情況下,運行此任務的時間框架是合理的?
  3. 其他建議?

回答

1

我應該把這整個事情委託給某種計劃任務嗎?在 這種情況下,運行此任務的時間框架是合理的?

是的,這似乎是最好的方法。將電子郵件發送卸載到不同於ASP.NET MVC應用程序的單獨進程中。就時間而言,這取決於您的業務需求。你可以看看Quartz.NET這可以用作任務調度機制。

1

您應該將其卸載到另一個進程中,如計劃任務或服務。您不會說目前有多少用戶,也有多少用戶可能同時在做某些事情,但是如果您發現用戶數量不斷增長,並且網絡請求上發送大量電子郵件將最終超時。

單獨的任務/服務還可以讓您更好地控制發送郵件的時間和時間。

+0

感謝您指出一旦我的用戶羣增長,Web請求可能會超時。這是我絕對不應該輕視的。但是每5分鐘運行計劃任務是否有意義?或者計劃任務通常每天運行一次或類似的東西? – Kassem 2012-02-05 17:40:11

+0

這取決於你需要多長時間運行一次這個任務,但是很多人之前都問過這個問題,請看看這些搜索結果的答案:[http://stackoverflow.com/search?q=scheduled+task + VS +服務(http://stackoverflow.com/search?q=scheduled+task+vs+service) – 2012-02-06 09:26:35

相關問題