webapi + windows計划 + mshta 實現定時執行任務


當然,實現定時任務有更好的操作方式,比如
方式一:
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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM