在创建触发器的时候,有一个属性叫开始时间,在开始时间到当前系统之间有可能会存在可能会触发的时间却并没有被触发,这属于丢失的触发Misfired。quartz对于这样的触发有两种处理方式MISFIRE_INSTRUCTION_FIRE_ONCE_NOW:针对 misfired job 马上执行一次;
MISFIRE_INSTRUCTION_DO_NOTHING:忽略 misfired job,等待下次触发;程序默认为第一种。所以会出现多执行一次的现象。将此值设为第二种即可解决这个现象。
在此我们不得不强调一下quartz中的MisFired.
在 Quartz 应用中,misfired job 是经常遇到的情况。一般来说,下面这些原因可能造成 misfired job:
1)系统因为某些原因被重启。在系统关闭到重新启动之间的一段时间里,可能有些任务会
被 misfire;
2)Trigger 被暂停(suspend)的一段时间里,有些任务可能会被 misfire;
3)线程池中所有线程都被占用,导致任务无法被触发执行,造成 misfire;
4)有状态任务在下次触发时间到达时,上次执行还没有结束;
为了处理 misfired job,Quartz 中为 trigger 定义了处理策略,主要有下面两种:
MISFIRE_INSTRUCTION_FIRE_ONCE_NOW:针对 misfired job 马上执行一次;(默认)
MISFIRE_INSTRUCTION_DO_NOTHING:忽略 misfired job,等待下次触发;
提醒一个quartz.properties中的一个配置项
org.quartz.jobStore.misfireThreshold
默认为1分钟。
分享到:
相关推荐
最近项目在用quartz去定时执行一些方法,这些时间都是动态的,而且还要去动态的去修改这些触发的时间,但是网上资料不全,这里写了个案例希望可以帮到大家,包呢得靠大家自己下载了,我这里用的包是quartz官网上下载...
Quartz.Net是一个定时任务框架,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔1小时执行”、“每天22点执行”、“每月18日的下午执行8次”等各种定时任务。 Quartz.Net中的概念:计划者...
一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器。 ...
Spring+Quartz定时任务Demo,导入工程就能直接运行,applicationContext.xml设置定时任务触发器
Quartz任务调度:根据时间,执行任务。 Quartz工作原理 1) 任务:需要执行的具体工作。 2) 触发器:在特定的时间触发任务的执行。 3) 调度器:任务的实际执行者,负责粘合任务和触发器。
一个关于quartz定时器的例子,基于日历指定触发器,可以使用CronTrigger。使用CronTrigger可以实现类似的触发器,比如:每个星期五的下午。比如每个星期一,三和五的上午9点到10点之间每隔5分钟。 CronTrigger也有...
Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。此外,Quartz提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失。...
一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器。 ...
Quartz 是个开放源码项目,提供了丰富的作业调度集。... 通过把要执行的工作与它的调度分开,Quartz 允许在不丢失作业本身或作业的上下文的情况下,修改调度触发器。而且,任何单个的作业都可以有多个触发器与其关联。
该示例将执行以下操作: 用一个工作线程创建一个调度... 安排三个不同优先级的触发器,第一次同时触发,第二次以错开的时间间隔触发; 启动Quartz Scheduler; 等待30秒让 Job 有机会触发触发器; 关闭调度程序;
JobUtil.createJob(String jobName,String triggerName,String runTime) 封装创建任务的工具,第一个参数任务名称(唯一),第二个参数触发器名称(唯一),最后一个参数是任务运行时间,参考quartz写法。
Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作。任务定义为标准Java组件的...
- 触发器类型:支持CRON和SIMPLE两种触发器(SIMPLE触发器即为按照固定秒数间隔执行的触发器) - Cron执行表达式:按照CRON内容,触发任务调度 - 间隔时间(秒):按照固定的间隔时间,周期性触发 - 请求类型:`GET`...
水族馆网Windows服务框架的...扳机鱼创建计划的作业,并配置触发器以在需要时运行该作业。 使用TopShelf,Quartz.NET,CastleWindsor。去做使用log4net调用整理日志记录和console.writelines 将seasnake映射放入配置
包含Java中使用Quartz进行任务调度常用操作:设置开始时间、设置结束时间、简单触发器、Cron触发器、作业监听器、启动多个作业、查看所有作业、手动触发作业、传递参数、取消/删除作业、作业出错时自动再执行等代码...
Trigger:触发器,存放Job执行的时间策略。用于定义任务调度时间规则。 JobStore: 存储作业和调度期间的状态 Calendar:指定排除的时间点(如排除法定节假日) job Job 是一个接口,只有一个方法 voi
前者用于实现比较简单的定时功能,例如几点开始,几 点结束,隔多长时间执行,共执行多少次等,后者提供了使用表达式来描述定时功能,因此适用于比较复杂的定时描述,例如每个月的最后一个周五,每周的周四 等。...
typora-root-url pictures Dynamic Quartz 最近在公司实习,发现公司有一套spring+Quartz的动态任务管理...Trigger(触发器):触发任务任务执行的时间或规则。在任务调度Quartz中,Trigger主要的触发器有:Simple
取而代之的是,我们可以使用Quartz.NET按cron类型的时间表触发消息,例如每月一次,每天两次,分别在上午8点和下午4点等。 跑步: 在本地。\ SQLExpress实例中创建一个名为“ QuartzNServiceBusSample”的数据库...
前言 APScheduler是基于Quartz的一个Python定时任务框架。提供了基于日期、固定时间间隔以及...每个作业都有自己的触发器,用于确定下一个任务何时运行。除了初始配置之外,触发器是完全无状态的。 有三种内建的trigge