zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    laravel队列
    php程序内存优化之数组操作优化
    swoole4创建Mysql连接池
    MySQL创建索引
    mysql索引命中规则
    Redis数据类型及使用场景
    Redis高可用集群-哨兵模式(Redis-Sentinel)
    网站架构优化性能
    PHP实现Redis分布式锁
    微软公司面试题
  • 原文地址:https://www.cnblogs.com/lcawen/p/8074738.html
Copyright © 2011-2022 走看看