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 ...
随机推荐
- PAT A1103 Integer Factorization (30 分)——dfs,递归
The K−P factorization of a positive integer N is to write N as the sum of the P-th power of K positi ...
- AI 正则化
正则化,是减少泛化误差的技术.
- 【Topcoder 10524】BrickPuzzle
Topcoder 10524 题意:给一个\(n\times m\)的棋盘,上面有一些格子是白色的,需要被一些俄罗斯方块们覆盖,俄罗斯方块有\(4\)种: 然后这些图案不能重叠或超出边界,并且每一个图 ...
- Android在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom。
根据业务的需要,要在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom属性. 我们知道在xml中设置的方法为:android:d ...
- c#静态构造函数 与 构造函数 你是否还记得?(转载)
构造函数这个概念,在我们刚开始学习编程语言的时候,就被老师一遍一遍的教着.亲,现在你还记得静态构造函数的适用场景吗?如果没有,那么我们一起来复习一下吧.静态构造函数是在构造函数方法前面添加了stati ...
- 微信小程序案例:获取微信访问用户的openid
在微信开发项目中,获取openid是项目常遇的问题,本文通过主要讲解实现在微信小程序中如何获取用户的openid,案例实现非常简单 具体实现方法是通过登录接口获取登录凭证,然后通过request请求微 ...
- python中和生成器协程相关yield from之最详最强解释,一看就懂(二)
一. 从列表中yield 语法形式:yield from <可迭代的对象实例> python中的列表是可迭代的, 如果想构造一个生成器逐一产生list中元素,按之前的yield语法,是在 ...
- asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法
asp.net core程序部署在centos7(下面的解决方案,其他系统都能使用,这里只是我自己部署在centos7),使用服务器jexus进行部署,AppHost模式. 因为请求是由jexus进行 ...
- Linux mount 命令
mount 命令用来挂载文件系统.其基本命令格式为:mount -t type [-o options] device dirdevice:指定要挂载的设备,比如磁盘.光驱等.dir:指定把文件系统挂 ...
- Centos下MooseFS(MFS)分布式存储共享环境部署记录
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的实际基于客户机/服务器模式.目前 ...
