环球热点!quartz.net的简单用法-入门篇(一)
来源:CSDN 时间:2023-03-27 08:05:09
【资料图】
前言
quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本。支持 cron-like表达式,集群,数据库。功能性能强大更不用说。
下载项目文档官网:http://www.quartz-scheduler.net/
项目中需引用:Common.Logging.dll , Common.Logging.Core.dll , Quartz.dll
下面给大家分解下我最近做的关于计划调度的一个小项目,来辅助理解quartz.net的功能和常用方法。
quartz.net的简单用法 -入门
1.创建一个每隔3秒钟执行一次的计划调度
public class RunMain { static void Main(string[] args) { Console.WriteLine(DateTime.Now.ToString("r")); //1.首先创建一个作业调度池 ISchedulerFactory schedf = new StdSchedulerFactory(); IScheduler sched = schedf.GetScheduler(); //2.创建出来一个具体的作业 IJobDetail job = JobBuilder.Create().Build(); //3.创建并配置一个触发器 ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().WithSimpleSchedule(x=>x.WithIntervalInSeconds(3).WithRepeatCount(int.MaxValue)).Build(); //4.加入作业调度池中 sched.ScheduleJob(job, trigger); //5.开始运行 sched.Start(); Console.ReadKey(); } } public class JobDemo : IJob { /// /// 这里是作业调度每次定时执行方法 /// /// public void Execute(IJobExecutionContext context) { Console.WriteLine(DateTime.Now.ToString("r")); } }
Note:1、记下作业调度创建的顺序。2、上述代码执行结果是,每三秒执行一次JobDemo中的Execute。
2.改进(丰富调度计划):上一个作业,我想让他每三秒执行一次,一共执行100次,开始执行时间设定在当前时间,结束时间我设定在2小时后,不过100次执行完没2小时候都不再执行。
public class RunMain { static void Main(string[] args) { Console.WriteLine(DateTime.Now.ToString("r")); //首先创建一个作业调度池 ISchedulerFactory schedf = new StdSchedulerFactory(); IScheduler sched = schedf.GetScheduler(); //创建出来一个具体的作业 IJobDetail job = JobBuilder.Create().Build(); //NextGivenSecondDate:如果第一个参数为null则表名当前时间往后推迟2秒的时间点。 DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2); DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddHours(2), 3); //创建并配置一个触发器 ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime) .WithSimpleSchedule(x=>x.WithIntervalInSeconds(3).WithRepeatCount(100)) .Build(); //加入作业调度池中 sched.ScheduleJob(job, trigger); //开始运行 sched.Start(); Console.ReadKey(); } } public class JobDemo : IJob { /// /// 这里是作业调度每次定时执行方法 /// /// public void Execute(IJobExecutionContext context) { Console.WriteLine(DateTime.Now.ToString("r")); } }
3.继续改进(cron-like使用):前两个作业调度都太简单,如果我想在每小时的第10,20,25,26,33,54分钟,每分钟的第1,10,14秒执行一次。那么上面显然是不能满足的。这是我就把cron-like表达式引入进来,以实现各种时间纬度的调用。
public class RunMain { static void Main(string[] args) { Console.WriteLine(DateTime.Now.ToString("r")); //首先创建一个作业调度池 ISchedulerFactory schedf = new StdSchedulerFactory(); IScheduler sched = schedf.GetScheduler(); //创建出来一个具体的作业 IJobDetail job = JobBuilder.Create().Build(); //NextGivenSecondDate:如果第一个参数为null则表名当前时间往后推迟2秒的时间点。 DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2); DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddYears(2), 3); //创建并配置一个触发器 ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime) .WithCronSchedule("1,10,14 10,20,25,26,33,54 * * * ? ") .Build(); //加入作业调度池中 sched.ScheduleJob(job, trigger); //开始运行 sched.Start(); //挂起2天 Thread.Sleep(TimeSpan.FromDays(2)); //2天后关闭作业调度,将不在执行 sched.Shutdown(); Console.ReadKey(); } } public class JobDemo : IJob { /// /// 这里是作业调度每次定时执行方法 /// /// public void Execute(IJobExecutionContext context) { Console.WriteLine(DateTime.Now.ToString("r")); } }
标签:
相关推荐:
最新新闻:
- 高清视频播放器支持什么格式?支持200多个视频和音频格式|天天观焦点
- 电视机顶盒没信号怎么办?电视机顶盒没信号解决方法 快资讯
- 今日视点:如何避免Linux文件权限漏洞?Linux权限漏洞及其解决
- 发烧级音响怎么挑选?发烧级音响选购技巧介绍
- 三星数码相机怎么样?三星NX1000套机多少钱?
- 焦点速递!安卓手机定位追踪软件是什么?情侣约会设计的手机定位软件
- 【vb教程】第一章vasualbasic程序开发环境_全球热点
- 【全球报资讯】如何做好微信营销?微商引流微信要怎么设置?
- 谷歌智能眼镜多少钱?谷歌眼镜功能报价
- 天天热资讯!夏普投影仪报价多少钱?夏普投影仪报价参考
- 5930酷派怎么刷机?酷派5930一键刷机流程及使用指南 快讯
- 电脑怎么安装xp系统安装版?安装教程来了
- 焦点报道:淘宝投诉卖家有用吗?淘宝开店必须要交保证金吗?
- 苹果手机开机慢怎么办?苹果手机开机慢的原因与处理方法_全球快播
- 云平台是什么意思?云服务平台有哪些?:全球视讯
- 视讯!新浪微博手机版是什么?新浪微博手机版可以在手机上使用吗?
- 精心收藏风林火山系统怎么下载?风林火山win764位旗舰版安装教程:环球消息
- 北京通手机卡是什么?北京通手机卡套餐资费怎么样?|天天快播
- 深圳华强北正品市场最新批发拿货价(全套)_全球时快讯
- 数据驱动时代如何做数据分析?一次完整的数据分析流程是什么?-世界观速讯
- 环球热点!quartz.net的简单用法-入门篇(一)
- 【环球快播报】学习web前端后发展前景怎么样?薪资变化趋势如何?
- 快播:什么是大数据?大数据相关内容介绍
- 支付宝转账到银行卡如何免手续费?支付宝余额宝转出教程
- 淘宝试用平台还能操作吗?怎么操作才安全?
- 三星c3630c好吗?三星c3630c评测如何?|当前最新
- 曾经烧毁大量显卡 RTX 4070终于不再强制16针供电_今日热议
- 金陶智能马桶盖的优点有哪些?金陶智能马桶盖优点介绍_当前播报
- 如何在淘宝上挖掘关键词?淘宝选关键词的六种方法|最新资讯
- 环球信息:手机用什么功能?小米红米说明书介绍
- 【环球时快讯】电动车的锂电和航模的锂电池有什么区别?航模电池基本使用及保养
- 胶片打印机畅销产品有哪些?常见的胶片打印机性能配置-世界时讯
- 全球速看:联想超级本怎么样?联想U310与4000元以下的差距在哪?
- 当前热文:华硕N550笔记本内部做工如何?华硕N550笔记本拆解
- 硕思闪客精灵怎么导出flash(gif)动画?flash游戏源文件疑难问题解答:速看料
- 什么牌子按摩椅好?按摩椅热门品牌推荐
- 索尼旗下的dv哪款好?市场上价格如何? 新视野
- 今日热闻!为什么要进行信息检索?信息检索的本质
- 【linux】linux下iso文件的制做与解压|全球头条
- G胖会数三了?《求生之路3》出现在《CS2》文件中 全球视点
- 网络攻击和攻击背后的组织是怎样的?九大全球网络攻击实时追踪系统盘点|全球快资讯
- 每天少刷15分钟手机对健康有好处|焦点速讯
- 别用Win10/11自带截图工具:隐私会被看光光
- “汪峰做亲子鉴定,章子怡人设崩了?”_天天热消息
- 小米13 Ultra最高配1TB 预计4月发布
- 天天看点:《石纪元》第三季主视觉图公布千空解开石化之谜
- 《循环8降神》活用灵视之才系统能拉近角色关系
- 《寂静岭2:重制版》团队:游戏可以售出1000万套 每日简讯
- 每日头条!建筑工人用如图所示的滑轮组将边长为0.3_某建筑工地用如图所示的简易滑轮组
- 当前资讯!怎么消灭蟑螂最彻底方法_怎么消灭蟑螂
财经
热门排行
- 当前资讯!怎么消灭蟑螂最彻底方法_怎么消灭蟑螂
- 观焦点:半年下跌40% 锐龙9 7900降至历史低价:到手不超过2549元
- 环球热点!李彦宏:文心一言和ChatGPT水平相差一两个月
- 小米10及10 Pro可升级!MIUI14稳定版内测推送达4GB
- 【天天快播报】Win11 Canary出离奇BUG:有线连Xbox手柄无法关机
- Bloober Team:未来的游戏 销量将超过1000万套
- 焦点速看:CPU要涨价了!男子私带239个CPU入境被查
- 小米13 Ultra曝光:首发双长焦主摄
- 【天天新视野】史诗级更新!曝iPhone 15 Pro升级USB 3.2
- 前沿资讯!平板戴上手腕— —IBM智能折叠屏手表
新闻放送
- 马斯克对推特估值仅200亿美元 不到收购价一半
- 《最终幻想16》PS5画质细节公开 4K和2K都是30帧 世界速讯
- Redmi Note 12 Turbo性能曝光 同价位没对手
- “聪明宝宝智慧妈妈”活动举办 佳能炫飞打印机记录宝宝成长瞬间
- 约1.7亿年前的“花”被发现 此前名为美丽镰鳞果|天天观察
- 【全球新要闻】矿大1100万捐款风波再起 当事人被指冒充企业创始人 本人回应:出现同名在所难免
- 当前头条:吉田P现场展示PS5机能:《最终幻想16》快速旅行约6秒左右
- 观热点:男子腰腹、大腿缠239个CPU入境被查 海关调侃:很能藏但藏不住
- 多肉化水还有救吗(多肉化水后怎么处理视频) 世界速读
- 这款免费工具可以让Unity单机游戏变成“多人游戏”
- 焦点日报:不当碍事梨!《生化危机4重制版》阿什莉无敌盔甲皮肤刀枪不入
- 强势回归!本马组合新作《AIR》发布角色海报
- 福星怎么玩 热闻
- 全球信息:EA将于6月关闭《暴力辛迪加》2012重启版服务器
- 世界热议:肝帝玩家!《暗黑破坏神4》公测玩家达成全职业满级
- 开发者介绍《巫师3:狂猎》维瑟米尔之死的创作思路
- 周鸿祎:GPT已经长出眼睛耳朵 人工智能将会产生意识
- 天天要闻:宁沪高速:2022年度净利润约37.24亿元 同比下降12.99%
- 热度飙升!《生化危机4:重制版》进入Steam热玩榜前十!
- 《杰克与达斯特》初代与二代自制PC移植版即将发布
- 玩家投票卡普空下一部重制:《恐龙危机》呼声最高-前沿热点
- 《GT赛车7》1.31版下周更新 再添五款全新车型
- 我熬出来的骨头汤为什么泛绿色,骨头变黑? 当前通讯
- 《最终幻想16》PS5新实机:吉田直树亲自上手介绍
- iPhone知道你变胖?苹果新专利公布