最近有個需求,需要做成windows Service服務來定時執行,用net core寫完了,才發現沒法子做為服務來運行。
在園子里搜了下,有各種解決方法,各有千秋。看了后,覺得不太方便,就自己想想法子來處理了。最后的解決方案是用posershell 寫三四行代碼,一執行,就可以將定時任務添加成功
首先,就是寫好一個net core控制台程序。控制台程序運行你的處理邏輯。
代碼就不展示了……
然后將代碼發布到指寶的文件夾,需要記錄下你控制台的dll名字。對,dll名字,net core控制台程序,默認不會創建exe文件。
復制好發布好的文件夾路徑,
可以用任意的編輯器編寫以下代碼,我是用系統自帶的Powershell ISE來編寫的。
Register-ScheduledJob -Name XXXXService -ScriptBlock{
dotnet Path\XXXXService.dll
} -Trigger (New-JobTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval '01:00:00' -RepeatIndefinitely)
代碼做個說明,
在系統中注冊一個計划任務 (Register-ScheduledJob) ,指定計划名(-Name),指定要運行的腳本(-ScriptBlock ),腳本內容(dotnet path),
指定觸發器(-Trigger ),新建觸發器 指定運行開始時間,指定運行間隔時間(-RepetitionInterval ),代表一小時運行一次(01:00:00),指定無限期運行 (-RepeatIndefinitely)
只需要運行上面的Powershell腳本,即可為系統添加一個定時執行的計划任務。
足夠簡單方便。
Unregister-ScheduledJob -Name XXXXService ---刪除計划任務。