![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Quartz.Net
Mudrock__
这个作者很懒,什么都没留下…
展开
-
Quartz.Net_侦听触发器
1.实现ITriggerListener接口,并实现其函数,具体说明见代码注释。触发器执行任务时存在数个阶段,利用侦听器可以在对应的阶段执行一些代码。2.为调度器添加侦听器。原创 2024-09-02 17:33:58 · 135 阅读 · 0 评论 -
Quartz.Net_持久化
答:因为我本人平时是使用Pomelo.EntityFrameworkCore.MySql连接DB的,但Quartz.Net硬编码使用MySql.Data连接DB。通常而言,Quartz.Net的数据默认是存储在运存中的,换言之:断电即失。所以在默认情况下,当系统重启后,原先的所有任务、触发器、调度器都会失效。问:为什么需要同时安装MySql.Data与Pomelo.EntityFrameworkCore.MySql?为避免上述情况的发生,可以对Quartz.Net进行持久化设置,令数据储存在DB中。原创 2024-09-02 17:11:01 · 193 阅读 · 0 评论 -
Quartz.Net_错过策略
假设一个任务需要重复执行五次,执行的时间点分别为 00:10、00:20、00:30、00:40 和 00:50。现在错过了第二次(00:20)和第三次(00:30)的执行,在 00:35 重新启动了服务。CronTrigger.MisfireInstruction.FireOnceNow:立即执行一次,然后根据原计划的 cron 表达式继续执行。总次数 = 原总次数 - 错过的次数 + 1(立即执行的一次)后续执行次数 = 原总次数 - 已执行次数 - 错过次数。立即执行一次,然后根据。原创 2024-09-02 16:09:04 · 198 阅读 · 0 评论 -
Quartz.Net_依赖注入
有时会遇到需要在IJob实现类中依赖注入其他类或接口的情况,但Quartz的默认JobFactory并不能识别具有。1.安装依赖:Quartz、Microsoft.Extensions.DependencyInjection。3.将IJob实现类、IJobFactory实现类、需要被依赖注入的类(TestClass)添加进容器。4.将scheduler的JobFactory属性替换为IJobFactory实现类的实例。实现IJobFactory接口。的IJob实现类,也就无法进行依赖注入。原创 2024-09-02 15:20:02 · 200 阅读 · 0 评论 -
Quartz.Net_快速开始
Quartz中主要分为三部分,JobDetail、Trigger、Scheduler,分别是任务、触发器、调度器,三者的关系为:Trigger控制JobDetail的执行时间和频率,而Scheduler负责将具体的Trigger与具体的JobDetail绑定。Execute函数中的代码即为定时任务执行的操作。③创建Scheduler(可使用单例封装)①创建IJob实现类(实现IJob接口)1.安装Quartz依赖。②创建Trigger。原创 2024-09-02 13:49:11 · 130 阅读 · 0 评论