使用Powershell 结合net core控制台程序执行定时运行任务
最近有个需求,需要做成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 ---删除计划任务。