什么是misfire

misfire就是哑火,就是trigger没有得到正常的触发。

1、所有的threadpool都在工作,而且工作时间很长,导致trigger没有threadpool去执行。

2、schedule挂掉有恢复。。

3、错过的执行

misfire阈值

1、ramjobstore  默认  5秒

2、dbjobstore   默认 60秒

MisFire策略

1、错过的执行,发上执行,后面的调度正常执行。

2、错过的合并执行一次,后面的正常执行

3、忽略这种调度,后面的正常执行

上面三点是核心策略

SimpleTrigger处理哑火

场景:

1am开始执行,每小时执行一次,连续执行10次。但是开始时间是3点半。

已经错过了三次执行。

关键词介绍:

remain:剩余       剩余多少次

Exist:存在         一共多少次

Now:马上开始

Next:下一个时间点 开始

NowWithRemainingCount:马上开始   使用剩余的次数

NowWithExistingCount:马上开始   使用总次数

NextWithRemainingCount:下一个时间点开始   使用剩余次数

NextWithExistingCount:下一个时间点开始   使用总次数

方法介绍

1、WithMisfireHandlingInstructionNextWithExistingCount

下一次执行时间是4点,然后连续执行10次,到14点。

  4:00              +10次                     =14:00

2、WithMisfireHandlingInstructionNextWithRemainingCount

  4:00              +7次                        =11:00

3、WithMisfireHandlingInstructionNowWithExistingCount

  3:30              +10次                     =13:30

4、WithMisfireHandlingInstructionNowWithRemainingCount

  3:30               +7次                       =10:30

5、WithMisfireHandlingInstructionIgnoreMisfires

错过的执行,都会 马上执行,后面的调度正常执行。

6、WithMisfireHandlingInstructionFireNow

现在马上执行,原来错过的不执行。

CronTrigger处理哑火

1、WithMisfireHandlingInstructionIgnoreMisfires

错过的马上执行掉,后续正常执行

2、WithMisfireHandlingInstructionFireAndProceed

错过的合并为一次执行,后续正常执行。

3、WithMisfireHandlingInstructionDoNothing

错过的不管了,剩下的按正常执行。

Quartz.Net—MisFire的更多相关文章

  1. Quartz的misfire特性

    Quartz的misfire特性 只有一个线程.多个job 第一个job产生misfire(executeTime>Interval) 且是repeatForever 那么只会运行第一个job, ...

  2. Quartz的misfire理解

    misfire用于Trigger触发时,线程池中没有可用的线程或者调度器关闭了,此时这个Trigger变为misfire.当下次调度器启动或者有可以线程时,会检查处于misfire状态的Trigger ...

  3. Quartz.net misfire实践

      1.问题描述 在使用Quartz.net定时运行作业时,存在一种情况:作业错过了某次执行,当作业恢复的时候应该怎么处理?如:job1在3:50的时候应该执行的,但此刻job1处于暂停状态,而到3: ...

  4. Quartz的misfire处理机制分析

    Quartz是一个特性丰富的开源的任务调度开发库,它可以很方便的集成到你的应用程序中.在Quartz中,当一个持久的触发器因为调度器被关闭或者线程池中没有可用的线程而错过了激活时间时,就会发生激活失败 ...

  5. Quartz任务调度:MisFire策略和源码分析

    Quartz是为大家熟知的任务调度框架,先看看官网的介绍: ---------------------------------------------------------------------- ...

  6. Quartz小记(一):Elastic-Job - 分布式定时任务框架

    Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架.去掉了和dd-job中的监控和ddframe接入规范部分.该项目基于成熟的开源产品Quartz和Zooke ...

  7. Quartz教程五:SimpleTrigger

    原文链接 | 译文链接 | 翻译:nkcoder 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正:有兴趣 ...

  8. Quartz.NET | 佳佳的博客

    原文:Quartz.NET | 佳佳的博客 Quartz.NET 是一个定时计划任务的框架,支持 .NET Core. 本文示例代码大部分来自于官方教程:Quartz.NET - Quartz.NET ...

  9. 基于Quartz编写一个可复用的分布式调度任务管理WebUI组件

    前提 创业小团队,无论选择任何方案,都优先考虑节省成本.关于分布式定时调度框架,成熟的候选方案有XXL-JOB.Easy Scheduler.Light Task Scheduler和Elastic ...

随机推荐

  1. django_redis作为 session backend 使用配置

    Django 默认可以使用任何 cache backend 作为 session backend, 将 django-redis 作为 session 储存后端不用安装任何额外的 backend # ...

  2. 《Head First 设计模式》[02] 观察者模式

    1.观察者模式 1.1 形象地认识观察者模式 报社的业务是出版报纸 用户像某家报社订阅了报纸,那么一旦报社有新的报纸,就会送到用户处.只要是订户,就一直会收到新报纸: 当用户不再想看报纸时,取消订阅, ...

  3. BAT特殊字符

    BAT特殊字符1. 点 与echo连用,作用是换行 示例1 [输出空行] echo. 2 > 定向符[输出] 将命令的输出进行重定向 [一般用于将结果写入文件] 注意 nul 为空设备 > ...

  4. 使用IE浏览提示:该页面无法显示

    问题描述: 我们有一个外部招聘的网站,DBA反馈新版上线过后首页集成的登录部分页面无法打开,一直显示“该页面无法显示”! 问题排查: 1.因为我本身也不是负责这一块的业务,刚开始以为是网站本身程序的问 ...

  5. C# 队列和栈 线程安全

    队列是其元素以先进先出(FIFO)的方式来处理集合,先入队的元素会先读取. 栈是和队列非常类似的另一个容器,栈和队列最大的区别是后进先出(LIFO),也可以说成先进后出. 队列在现实生活中的例子数不胜 ...

  6. docker for windows 10 添加阿里云镜像仓库无效问题

    原来一直是用cmd来执行docker 命令的,结果今天发现不行了,改了镜像仓库也pull不下来. 后来换用powerShell执行docker pull 才成功.大家可以试试 win+R  运行 po ...

  7. Luogu P3390 【模板】矩阵快速幂&&P1939 【模板】矩阵加速(数列)

    补一补之前的坑 因为上次关于矩阵的那篇blog写的内容太多太宽泛了,所以这次把一些板子和基本思路理一理 先看这道模板题:P3390 [模板]矩阵快速幂 首先我们知道矩阵乘法满足结合律而不满足交换律的一 ...

  8. Java开源博客My-Blog之mysql容器重复初始化的严重bug修复过程

    写在前面的话 <Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦> <Java开源博客My-Blog之docker容器组件化修改> ...

  9. 微服务之Sping Cloud

    版本说明 Finchley SR2 价值简要 微服务之间是松耦合,跨不同业务部门,提供非常充分的灵活性,加快项目开发完成效率,方便组件化独立可扩展性及复用. 微服务应用结构表现 组件简要 1. Eur ...

  10. oracle数据恢复方法

    https://www.cnblogs.com/hqbhonker/p/3977200.html