zoukankan      html  css  js  c++  java
  • webapi+Quartz.NET解决若干定时程序同时运行的问题

    项目现状:

    有若干定时程序需要自启动运行,为了简便程序部署等问题,采取这种办法把定时程序集中管理到webapi中跟随api发布

    代码架构介绍:

    新建一个类库,类库引用Quartz(Quartz.2.3.2),每个需要统一管理的程序新建一个文件,其中包括处理程序类和接口

    类库中做一个接口静态类,便于api的Application_Start方法调用

    其中JobScheduler类的静态方法如下:

     public static void Start()
            {                   
                StdSchedulerFactory factory = new StdSchedulerFactory();
                IScheduler scheduler = factory.GetScheduler();        

                /*-------------计划任务代码实现------------------*/
                //创建任务1
                IJobDetail job = JobBuilder.Create<CityData.CityDataCaiji>().Build();
                //创建触发器1
                ITrigger trigger = TriggerBuilder.Create().WithIdentity("TimeTrigger", "TimeGroup")
                    .WithSimpleSchedule(t => t
                    .WithIntervalInMinutes(5)
                    .RepeatForever())
                    .Build();

               //创建任务2
                IJobDetail job1 = JobBuilder.Create<DataBaseBackup.DatabaseBackup>().Build();
                //创建触发器2
                ITrigger trigger1 = TriggerBuilder.Create().WithIdentity("TimeTrigger1", "TimeGroup1")
                    .WithSimpleSchedule(t => t
                    .WithIntervalInMinutes(10)
                    .RepeatForever())
                    .Build();
                //添加任务及触发器至调度器中
                scheduler.ScheduleJob(job, trigger);
                scheduler.ScheduleJob(job1, trigger1);
                scheduler.Start();
            

            }

    每个定时程序分别差功能键自己的任务和触发器,由scheduler统一调度。

  • 相关阅读:
    递归求解的两道小练习
    unittest的前置后置,pytest的fixture和共享机制conftest.py
    pytest + allure
    Jmeter 录制 https协议是出现“您访问的不是安全链接”提示时
    Jmeter
    如何不做登录请求而获取cookie到Jmeter里
    Fiddler抓包后转成jmeter脚本
    Jmeter- 笔记12
    Jmeter- 笔记11
    Jmeter- 笔记10
  • 原文地址:https://www.cnblogs.com/pangzili/p/8748933.html
Copyright © 2011-2022 走看看