簡體   English   中英

Windows Service VS Web流程

[英]Windows Service VS web Process

我在這里創建了一個消息隊列,它基本上在一個線程上,並從數據庫中陸續發送電子郵件。 首先,我認為由於這是一個連續的過程,因此必須在Windows服務上運行,這聽起來像是一個理想的解決方案,但並不是我與我的經理交談過,他說,如果將其與Windows XP放在同一存儲庫中會更好。整個項目,如果我放入while(true)語句。 這樣,在部署到生產環境時,我們無需擔心安裝任何Windows服務或其他任何東西。 但是我在這里的想法是,如果我們這樣做,那么Web服務器上將會承受許多不必要的壓力。

我不確定該走哪條路。 有什么建議么?

我將使用單獨的Windows服務。
由於此服務是您的應用程序的當事方,因此它的生命周期取決於應用程序池進程的生命周期(當然,取決於所使用的IIS版本),並且這種方式只要您選擇更改應用程序池設置,您將必須記住您的消息作業也取決於它,並且,如果您為應用程序池設置了任何回收設置,則您可能很難理解您的作業為何突然停止工作或類似原因。

我絕對會建議使用Windows服務在后台處理電子郵件隊列。 您可以向經理建議以下幾點:

  1. 該服務可以與另一個項目保存在同一存儲庫中。
  2. 安裝和升級服務非常容易。 使用installutil並將批處理文件添加到項目中以進行安裝/卸載。 升級是停止服務,更新服務.exe並再次啟動服務的問題。
  3. 從技術上講,所有這些都可以自動化,也可以作為部署過程的一部分。

您也可以簡單地編寫命令行應用程序,然后使用Service +之類的程序包裝它,使其表現得像服務一樣。 您還可以獲得其他功能,例如,可以在需要時(像希望在運行時一樣)像命令行應用程序一樣運行它,或者根據需要從其他應用程序啟動/執行它。 您還可以建立各種行為...連續模式,一次可以處理1(或100或其他),然后退出(並讓Service +重新啟動它),或您可能需要的其他任何方式。

暫無
暫無

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

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