使用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     ---删除计划任务。

 

posted @ 2018-11-27 22:00  风徐徐  阅读(1740)  评论(0编辑  收藏  举报