我知道這個話題的變化已經被問過,但這裏是我的情況:Windows任務調度VS Windows服務.NET應用程序
我有大約30 FTP接口應用。每個界面都有自己的需求和配置,但基本上它是從源服務器下載文件 - 有時是每天,有時每分鐘(有些甚至可能在幾秒鐘內排定)
對於我最初的開發,我寫了一個C#類庫它可以完成所有的FTP工作。此應用程序(可能是一個控制檯應用程序或Windows服務)將最有可能運行在Windows Server 2012上運行
現在到下一塊,我試圖決定之間:
1)寫控制檯應用程序(或PowerShell腳本?),它將命令 行輸入加上每個接口的配置文件。我會 使用Windows任務計劃程序進行計劃。爲了部署這些接口,我可以創建一個使用「schtasks.exe」 創建和配置任務的批處理文件。每個界面的一項任務。聽起來 易peasy ...
OR
2)編寫Windows應用程序的服務......但在這裏,我很困惑。我的 是否爲我的每個界面創建和安裝服務? (即只有 不同的東西可能是配置文件)。或者,我是否創建了一個主要的 服務,該服務爲單個 配置文件中定義的每個接口衍生線程?
如果我是作爲一項服務完成的,我該如何管理 的維護/部署?如果我停止服務,它會不會影響所有接口 ?我該如何執行實際的 調度?我讀過的建議是使用Quartz.Net調度程序或者.Net定時器。
- - -
一些額外的想法: 以下是在計算器上的一些讀物,它會彈出這些議題/關注:
windows service vs scheduled task Scheduled console app vs Windows service? When is it appropriate to use each
任務計劃參與討論
- 列表項目
- 可能需要登錄? (我讀過這是不正確的)機器管理員密碼更改
- 問題(我讀過這是不正確的)
- 問題與高權威帳戶(網絡服務,本地系統或用戶) 運行
- 多個進程/長時間運行事務的問題 這對我來說真的很糟糕,例如,如果兩個進程試圖下載(並刪除)相同的源FTP文件。許多
- 經驗是,這是不是穩定/可靠的Windows服務,特別是在早期的操作系統Windows7的前
- 較少的基礎設施支持(如重試,監控等故障策略)
- 關注時調度在數秒內
的Windows服務問題
- 列表項
- 潛在的國際空間站與計時器的UE
- 更復雜
控制檯應用程序+任務計劃參與討論
- 列表項
- 不能在後臺運行 - 所以託管服務器將命令提示符啓動 這是一個嚴重的問題。如果我有30個FTP接口,並且每個計劃每分鐘/小時運行一次,那就是很多窗口!
- 我該如何解決這個問題?改用PowerShell腳本?
期待一些反饋和示例代碼/腳本,如果相關也高度讚賞。
感謝
_full真正world_樣品(C#庫FTP)具有良好的'模式和使用practices' ***任務調度程序,Windows服務或石英***? –