簡體   English   中英

根據時間限制更改項目的狀態

[英]Changing the status of an item based on time constraints

我為客戶建立了一個出價網站,用戶在該網站上發布項目並設置拍賣持續時間。 該項目處於待處理狀態,直到管理員批准該項目或自用戶首次發布后12小時后。 從那時起,該項目將被發布 ,其他用戶可以對其進行出價。 一旦拍賣期結束,該項目應該關閉 ,最高出價者贏得該項目......

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

  • 發布新項目后向管理員發送。
  • 一旦贏得一個項目,就贏得冠軍。
  • 拍賣結束后,對物品的所有者。
  • 對於管理員,一旦拍賣結束並且有一個贏家(即:人們實際上對它進行投標)。

目前我正在做的是在我的業務層中調用一些方法來檢查是否有任何已經超過12小時的待處理項目才能發布它們,以及是否有已發布的項目已經超過其拍賣持續時間以關閉它們。 從多個地方調用此方法,例如網站的主頁,項目的搜索頁面等等......這實際上是導致我出現問題( 請參閱此問題 )。 所以我認為值得找到一種替代解決方案來幫助我擺脫所有這些最有可能因設計不良而引起的問題。

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

我應該把這整件事委托給某種預定的任務嗎? 在這種情況下,運行此任務的時間框架是否合理?

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

您絕對應該將其卸載到另一個進程,如計划任務或服務。 您沒有說明您目前有多少用戶或有多少可能同時做某事,但如果您發現您的用戶群不斷增長,在Web請求中發送大量電子郵件將最終超時。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM