Quartz.Net—MisFire
什么是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的更多相关文章
- Quartz的misfire特性
Quartz的misfire特性 只有一个线程.多个job 第一个job产生misfire(executeTime>Interval) 且是repeatForever 那么只会运行第一个job, ...
- Quartz的misfire理解
misfire用于Trigger触发时,线程池中没有可用的线程或者调度器关闭了,此时这个Trigger变为misfire.当下次调度器启动或者有可以线程时,会检查处于misfire状态的Trigger ...
- Quartz.net misfire实践
1.问题描述 在使用Quartz.net定时运行作业时,存在一种情况:作业错过了某次执行,当作业恢复的时候应该怎么处理?如:job1在3:50的时候应该执行的,但此刻job1处于暂停状态,而到3: ...
- Quartz的misfire处理机制分析
Quartz是一个特性丰富的开源的任务调度开发库,它可以很方便的集成到你的应用程序中.在Quartz中,当一个持久的触发器因为调度器被关闭或者线程池中没有可用的线程而错过了激活时间时,就会发生激活失败 ...
- Quartz任务调度:MisFire策略和源码分析
Quartz是为大家熟知的任务调度框架,先看看官网的介绍: ---------------------------------------------------------------------- ...
- Quartz小记(一):Elastic-Job - 分布式定时任务框架
Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架.去掉了和dd-job中的监控和ddframe接入规范部分.该项目基于成熟的开源产品Quartz和Zooke ...
- Quartz教程五:SimpleTrigger
原文链接 | 译文链接 | 翻译:nkcoder 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正:有兴趣 ...
- Quartz.NET | 佳佳的博客
原文:Quartz.NET | 佳佳的博客 Quartz.NET 是一个定时计划任务的框架,支持 .NET Core. 本文示例代码大部分来自于官方教程:Quartz.NET - Quartz.NET ...
- 基于Quartz编写一个可复用的分布式调度任务管理WebUI组件
前提 创业小团队,无论选择任何方案,都优先考虑节省成本.关于分布式定时调度框架,成熟的候选方案有XXL-JOB.Easy Scheduler.Light Task Scheduler和Elastic ...
随机推荐
- kubernetes集群中对多个pod操作命令
$ for i in 0 1; do kubectl exec web-$i -- sh -c 'echo hello $(hostname) > /usr/share/nginx/html/i ...
- highcharts中把X轴的名字竖着显示
Highcharts.chart('container', { chart: { type: 'column' }, title: { text: 'Auto rotation limit' }, s ...
- Luogu3959 NOIP2017 宝藏 状压DP
题目传送门:https://www.luogu.org/problemnew/show/P3959 题意:给出一个有$N$个点的图,求其中的一个生成树(指定一个点为根),使得$\sum\limits_ ...
- 【dataX】阿里开源ETL工具——dataX简单上手
一.概述 1.是什么? DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase. ...
- 【转】ORA-00257:archiver error. 错误的处理方法
出现这个问题的原因一般是日志满了.这里以用户tt为例: 一.用sys用户登录 sqlplus sys/pass@tt as sysdba 二.看看archiv log所在位置 SQL> show ...
- Task 异步编程测试案例及基础应用说明
对于多线程,我们经常使用的是Thread.在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于“任务的编程模型”所冲击,因为tas ...
- 通用漏洞评估方法CVSS3.0简表
CVSS3.0计算分值共有三种维度: 1. 基础度量. 分为 可利用性 及 影响度 两个子项,是漏洞评估的静态分值. 2. 时间度量. 基础维度之上结合受时间影响的三个动态分值,进而评估该漏洞的动态分 ...
- python语法基础笔记
本篇笔记基于博主自己的的学习,理解,总结所写.很多东西可能存在误解,不能保证百分之百的正确. 1. 数据表达1.1 常量和变量1.2 数据类型1.2.1 基本数据元素1.2.1.1 数字1.2.1.2 ...
- mysql操作命令梳理(4)-中文乱码问题
在平时的mysql运维操作中,经常会碰到插入中文字段后出现乱码的情况,产生中文乱码的原因一般有:1)mysql的编码格式不对,是latin1编码.强烈推荐将mysql下的编码格式都改为utf8,因为它 ...
- SpringCloud设定Feign底层实现
1. 概述 版本: spring-boot: 1.5.9.RELEASE spring-cloud: Dalston.SR5 在默认情况下 spring cloud feign在进行各个子服务之间的 ...
