• 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统一调度。

  • 相关阅读:
    NSData和NSString 、 NSFileManager
    通知(Notification) 、 应用间通信(一)
    Dynamic支持CollectionView布局 、 MotionEffects特效 、 BlurImage效果 、 TextKit
    Dynamic Animator 、 CollectionViewLayout
    动画(Animation) 、 高级动画(Core Animation)
    Autoresizing和AutoLayout
    触控(Touch) 、 布局(Layout)
    手势与变形 、 视图与坐标系
    常用的静态变量,包括颜色等
    JSPatch动态修改已上架app的bug,即时修复bug
  • 原文地址:https://www.cnblogs.com/pangzili/p/8748933.html
Copyright © 2020-2023  润新知