栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

Quartz.NET的使用

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Quartz.NET的使用

Quartz.NET是一款功能齐全的开源作业调度框架,小至的应用程序,大到企业系统都可以适用。Quartz是作者James House用JAVA语言编写的,而Quartz.NET是从Quartz移植过来的C#版本。**

 private void SendKCQ() 
        {
            // 构造一个调度程序工厂
            ISchedulerFactory schedFact = new StdSchedulerFactory();

            // 得到一个调度器
            IScheduler sched = schedFact.GetScheduler();
            sched.Start();

            // 定义作业并将其绑定到HelloJob类
            IJobDetail job = JobBuilder.Create()
                .WithIdentity("myJob", "group1")
                .Build();

           
            // 现在触发作业运行,然后每600秒触发一次
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("myTrigger", "group1")
               
                .WithSimpleSchedule(x => x
                    .WithIntervalInSeconds(60)
                    .RepeatForever())
                .Build();

            // 5.使用trigger规划执行任务job
            sched.ScheduleJob(job, trigger);
          

        }

1、有几个重要类和概念需要了解一下:

IScheduler - 与调度器交互的主要API. IJob -由执行任务实现的接口。 IJobDetail - 定义Job实例
ITrigger - 按照定义的时间让任务执行的组件. JobBuilder - 用于定义或者创建JobDetai
TriggerBuilder -用于定义或生成触发器实例

2、触发器类型   一共有4种:
WithCalendarIntervalSchedule
WithCronSchedule
WithDailyTimeIntervalSchedule
WithSimpleSchedule
 在项目中使用的是WithCronSchedule,因为cron表达式更加灵活、方便。

3、Quartz轮训任务,需要配置一个参数,这个参数来控制Job任务是否并行,默认情况是并发执行的,如果是采用顺序执行,才可以执行下一次的任务,配置如下:

情况如下:假设一个任务每5分钟执行一次,本次的任务还没有执行完,然后就到了下一次的执行的时间,这种情况是继续执行新开的任务,不会等待。

如果想等待本次任务执行完才可以执行下次任务可以添加[DisallowConcurrentExecution]标记

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954170.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号