当然,实现定时任务有更好的操作方式,比如
方式一:
asp.net mvc+quartz.net +corn +webapi,asp.net mvc做任务管理的平台,使用CronTrigger做定时触发,quartz.net做定时执行控制,webapi实现执行逻辑
方式二:
老生常谈的一种,windows服务(开机自启)+定时器(timer,quartz.net等)+webapi(或者其他实现执行逻辑)
最近在做cs,timer实现时间的控制并不精确,决定以windows计划实现,先介绍一下mshta吧:
Mshta
它支持命令行参数,可以接收JS和VBS的方法。
例子如下:
//JS,要以vbscript:开头,实现不打开浏览器显示hello world! mshta vbscript:window.execScript("alert('hello world!');","javascript")(window.close) //VBA,要以javascript:开头,实现不打开窗体显示hello world! mshta javascript:window.execScript("msgBox('hello world!'):window.close","vbs")
WebApi
创建一个WebApi即可,假设路径为http://localhost:22673/api/SendMail/SendToLeader,需要支持HttpGet
那么在重建windows执行计划时,在操作--选择启动程序,可参照如下:
//cmd执行如下,在浏览器打开连接 explorer http://localhost:22673/api/SendMail/SendToLeader
不打开浏览器,可参照如下:
//cmd命令下,可通过执行如下语句实现逻辑控制,不打开浏览器 //直接使用mshta作为程序文件可以 //创建bat文件作为程序文件也可以 mshta vbscript:createobject("wscript.shell").run("""iexplore"" http://localhost:22673/api/SendMail/SendToLeader",0)(window.close)