cron - 石英 Cron 失火
问题描述
我是新的 Quartz 调度器,遇到了一些麻烦。
当我使用简单的调度程序如下:
Trigger misFiredTriggerB = TriggerBuilder.newTrigger().startAt(DateUtils.addSeconds(new Date(), -63)).withSchedule(SimpleScheduleBuilder.simpleSchedule().withMisfireHandlingInstructionFireNow()).build();
它工作正常,根据情况考虑失火阈值和失火指令。
但是,当我使用 cron 调度程序并使用当前时间前几秒的时间时,它既不考虑阈值也不考虑失火指令。
Trigger misFiredTriggerA = TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").withSchedule(CronScheduleBuilder.cronSchedule("30,35,38 50 17 * * ?").withMisfireHandlingInstructionFireAndProceed()).build();
cron有什么我做错了吗?
另一个问题是如何轻松更改 Eclipse 中的失火阈值,因为默认情况下它设置为 60000?
先感谢您。
解决方案
Simple 触发器和 Cron 触发器之间存在差异。
- 简单触发器的执行安排在现在之前或之后的确切日期。在您的情况下,现在已经超过 60 秒(属性org.quartz.jobStore.misfireThreshold(以毫秒为单位)),因此 Quartz 假定此类触发器为误触发。
- Quartz 使用Cron Trigger来安排在未来最近的日期执行,该日期尊重 cron 表达式。因此,在您的情况下,工作将于明天 17:50:30 触发
推荐阅读
- c# - 为什么 Entity Framework Core 试图将记录插入到多对多关系的表之一而不是连接表中?
- html - 错误:模板解析错误:':svg:span' 不是已知元素:
- javascript - 在客户端标准化时间(javascript)
- java - 回收站视图未调用 onBindviewHolder
- r - 组中每一行的 Dplyr 时间差
- .htaccess - 将子目录添加到不可见的 .htaccess URL 重写
- arrays - 您可以在 Google 表格中创建动态公式吗?
- css - 为什么以百分比表示的元素高度不起作用?
- r - 为什么 R system() 命令杀死端口进程也会杀死 Ubuntu 19.10 Rstudio 会话?
- javascript - 无法使用 Protractor Azure Pipeline 运行 conf.js