我有一個C#控制檯應用程序。我想一天中的每個小時都運行一次。此應用程序不打算在本地機器上運行,而是在其他用戶機器上作爲後臺進程運行。我不希望用戶使用任務調度程序手動設置任務。我怎麼能爲他做到這一點?調度任務c#
調度任務c#
回答
你可以將它設置爲與1小時的間隔定時器運行。
請參閱此鏈接的例子 How do you add a timer to a C# console application
你也可以將它安裝在用戶的計算機上的Windows服務。
您還可以使用Quartz.net調度服務;在其最簡單的形式中,它將作爲Windows Service安裝,並且計劃配置在XML文件中。然後你可以讓它在預定的時間調用你的代碼。
我保留了一些筆記...不知道如果這有助於:
的Quartz.Net指南我希望我有
Quartz.Net非常全功能,只要我會讀。如果您使用調度程序,以便您可以推遲任務,或將前端與某些較長的後端處理分離,則可以非常輕鬆地完成。
大困惑我的是石英可以以多種方式使用。您可以將其嵌入到您自己的應用程序或服務等中。另一個混淆是官方教程可能會使用一些更新,以便代碼示例可以使用當前版本。最後,配置對於.net用戶來說似乎很陌生;我習慣做類似於:
var myObject = new SuperUsefulClass();
myObject.ImportantSetting = SettingEnumeration.SomeValueThatIntellisenseSuggests;
myObject.OtherSetting = OtherSettingEnumeration.SomeValueThatIntellisenseSuggests;
通常我喜歡在LINQPad中探索一個新類。我將像上面那樣實例化它,並且一直使用它,直到我在我的項目中使用它爲止。
Quartz.Net的配置大約爲外國對我的想象。但那是因爲我忽略了使用Quartz.Net的最好的預建選項之一,而我忽略了Quartz上最好的教程之一。
對於我的用例,推遲任務,我最終意識到使用Quartz的最簡單方法是使用預先構建的Windows服務。爲此,我簡單地修改了一個示例配置文件,並選擇將所有作業,作業元數據等保存到SQL Server數據庫中。
當談到時間要執行的任務,石英Windows服務將調用指定的方法(當然,它實現了IJob接口)。爲了使方法被調用,您的.dll或.exe(「集結號」在.net中的說法)必須在安裝服務(Quartz.Service.exe)相同的文件夾。然後神奇地調用你的程序集中的方法。當然,如果你的方法讀取外部文件,那麼它們也必須複製到服務文件夾中,或者由程序集以某種方式訪問。
幾乎放棄之後,我碰到了Tarun Arora的教程。這是非常好的,因爲我不能改進它,我只會鏈接到它。
Install Quartz.Net as a windows service and Test installation
Quartz.Net Writing your first Hello World Job
基本上:
- 歡迎調整quartz.config文件(類似於上面的代碼)
- 安裝Quartz.Net服務(Quartz.Service.exe )以管理員身份
- 將要執行的代碼的程序集(.exe或.dll)放在與Quartz.Service.exe
- 啓動服務
- 進行調度調用。即您的彙編代碼將調用Quartz服務,Quartz服務會繼續執行並在其本地系統上執行它們。
- 1. C#任務調度查詢
- 2. 任務調度
- 3. CodeIgniter任務調度程序將任務調度到任務調度程序
- 4. Windows任務調度程序C#
- 5. 用於任務調度的C++代碼
- 6. C#中的任務(預約)調度庫?
- 7. 使用C的任務調度#
- 8. 任務調度的c代碼
- 9. 推薦C#任務調度庫
- 10. MPI任務調度
- 11. CRON:調度任務
- 12. Lua任務調度
- 13. Cordova調度任務
- 14. 調度Rake任務
- 15. 在任務調度
- 16. 與任務調度
- 17. 調度任務服務
- 18. 調度任務與服務
- 19. 任務並行(TPL)和任務調度在C#
- 20. 調度任務使用任務調度在php
- 21. 沒有窗口任務調度程序的調度任務
- 22. 創建任務調度程序任務
- 23. 指定任務調度秒
- 24. 任務調度在Windows
- 25. 任務調度和WaitHandles
- 26. 任務調度設置
- 27. 調度任務與powershell
- 28. Laravel測試任務調度
- 29. VtigerCRM任務調度模塊
- 30. iphone中的調度任務
服務是要走的路。 – Dan
http://taskscheduler.codeplex.com/看起來每個人都應該工作。你能建議哪一個應該很容易實現?我不想過度殺人。 – user2901683