可以看到很多重复的状态为EXECUTING的线程,这样的话可能对JOB程序造成一些不可预知的印象,所以,最好在程序把QRTZ_FIRED_TRIGGERS重复的列删掉...
下面有一些关于 Quartz 时间配置的说明:
“?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。 月份中的日期和星期中的日期这两个元素时互斥的一起应该通过设置一个问号(?)来表明不想设置那个字段
"/"字符用来指定渐增的值。例如0/15出现在秒字段的时候意味着“在第0,15,30和45秒”(的时候被触发)。而5/15出现在秒字段的时候意味着“在第5,20,35和第50秒”(的时候被触发)。"*/"和"0/"的指定是等价的。
注:当分子+分母的值大于该字段的最大值,如在秒钟字段出现45/20的时候,表示在第45秒以后的每20会触发一次,但是20秒以后又算做另外的时间段以内了,所以该字段的/20即失效,如改为45/10 则只有第45 和55秒会执行一次。
是‘last’的省略写法可以表示day-of-month和day-of-week域,但在两个字段中的意思不同,例如day-of-month域中表示一个月的最后一天,一个计划调度器容器,容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面的每个JobDetail都会根据trigger按部就班自动去执行
触发器,用于定义任务调度时间规则,代表一个调度参数的配置,什么时候去调
任务,即被调度的任务,本身可能是有状态的
工作日历,可以控制节假日和一些特殊日期不执行定时任务
使用quartz集群配置个人体验的体验,以下供参考
1、执行计划灵活配置通过cron表达式+工作日历,一般能保证执行的规则灵活多变;
2、集群式管理,可以保证多节点工作的时候,同一任务只有一个节点在执行,并且如果执行失败或宕机,通过集群配置,自动负载找到最优节点去完成没有完成的任务;
3、通过quartz已经集成好的方法,扩展实际的外部实现功能接口,灵活的管理任务,创建、执行、暂停、删除、修改等;
4、集成好的数据库中,通过手写查看方法,可以查询各个任务的执行状态,包括下一执行时间等信息。
5、结构清晰,我的应用中只需要定一个枚举类型,然后去写它的执行方法就可以了
1、设置间隔的时候要注意不要小于该任务的执行最长时间,否则的话虽然不会多个任务同时执行,但有可能导致不按cron表达式执行
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索quartz , 集群 , 定时任务 分布式调度 ,以便于您获取更多的相关知识。