问题标签 [misfire-instruction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
398 浏览

quartz-scheduler - 在 Quartz 1.8.6 中,是否有类似 MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT CronTrigger 的选项

我们在我们的应用程序中使用 Quartz 1.8.6。我们将 CronTriggers 用于每小时和每晚的工作。我们想设置这样的东西,如果出现故障,我们希望跳过这项工作,直到下一个 cron 时间到来。

对于简单的工作,您似乎可以做一个

nightlyTrigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT);

但是,这似乎不适用于 CronTrigger。在这种情况下要使用的 Misfire 指令是什么?

0 投票
1 回答
233 浏览

cron - 石英 Cron 失火

我是新的 Quartz 调度器,遇到了一些麻烦。

当我使用简单的调度程序如下:

它工作正常,根据情况考虑失火阈值和失火指令。

但是,当我使用 cron 调度程序并使用当前时间前几秒的时间时,它既不考虑阈值也不考虑失火指令。

cron有什么我做错了吗?

另一个问题是如何轻松更改 Eclipse 中的失火阈值,因为默认情况下它设置为 60000?

先感谢您。

0 投票
1 回答
570 浏览

java - Apache Camelquartz2 cron 失火

我正在使用带有 spring boot 和 camel-config.xml 文件的 Apache Camel。我创建了一个每秒运行的简单路由并运行一个类方法:

该类只是有一个计数器 int 递增并显示:

我有另一段代码(与显示无关)可以启动和停止上述路线。我遇到的问题是停止路线时,等待 5 秒钟然后重新开始。

它不是继续它离开计数的地方,而是赶上路线停止时它没有做的每一次迭代。

我读了很多书试图解决这个问题。我学到的是以下内容:

  • 发生的事情被称为“失火”
  • 有一个允许配置失火指令的参数
  • 根据 Apache Camel 文档,如果您使用 cron 表达式,则不能使用 trigger.XXX 选项(这将允许配置失火指令)。
  • 根据 Apache Camel 文档,只有在石英处于集群模式时才会记录失火。
  • 您可以配置石英属性以禁用集群模式(我不需要它)。

我没有运气的尝试:

  • 使用 org.quartz.jobStore.isClustered: false 创建了一个石英属性文件。我不确定它是否被捡起(把它放在 src/resources 中并创建一个指向它的 bean)。它没有解决问题。
  • 试图在路线 quartz2://TestCron?trigger.misfireInstruction=2&cron=0/1 * * * * 中将 misfireInstruction 设置为触发选项?”

我完全没有选择:x 将不胜感激任何帮助 :)

0 投票
1 回答
36 浏览

quartz.net - 如何防止 Quartz.Net 失败的工作重试

我知道我可以在构建触发器时指定.WithMisfireHandlingInstructionDoNothing()但我的一些作业是通过IScheduler.TriggerJob()方法触发的,因此没有任何触发器。

我可以在ITriggerListener侦听器中检测并记录失火,但如何阻止 Quartz 再次尝试启动该作业?如果我理解正确.VetoJobExecution不可用,因为无论如何都必须成功触发作业。

还有其他想法吗?

编辑:我的实现

0 投票
0 回答
52 浏览

triggers - 除了服务器重启之外,是否存在 Quartz 使用“RECOVERING_JOBS.recover_”触发器触发作业的情况?

我有一个运行 Quartz Scheduler (v1.8.6) 的 2 台服务器集群。它们共享相同的元数据数据库,并且所有作业的恢复标志都为 true。时钟是同步的(根据我们的客户)。

一些属性:

我遇到的情况是“RECOVERING_JOBS.recover_xxx”触发器由于失火而触发作业并且该作业已经在运行,因此我最终在同一台服务器上运行了同一作业的 2 个实例。

据我在日志文件中看到的,服务器没有重新启动,所以我不知道为什么有一个触发该作业的 RECOVERING 触发器(然后,失火)。

谢谢