我希望我的作业每 X 秒执行一次,作业和 X 之间存在一对一的匹配。此外,在运行时,可以注册具有自己间隔的新作业。
我曾尝试为这种情况编写 cron 表达式,但在文档中写到秒的值不能超过 59。所以 cron 表达式是这样的:“0/63 * * * * ?”无效。
乍一看,该问题的解决方案似乎是这样的表达式:“0/3 0/1 * * * ?”,但它的意思完全不同:每分钟每三秒触发一次作业。
您能建议什么是正确的解决方案(cron 表达式)吗?我知道我可以只使用简单的计时器,但我必须使用 Quartz 来使用 cron 作业。
最佳答案
Quartz cron 语法旨在基于标准的 24 小时 60 分钟时钟来表达计时。它不适合“每 n 秒”,其中 n 可以是任何值。您无法使用 cron 表达式执行此操作。
如果您需要使用 Quartz 执行此操作,您应该使用 SimpleTrigger
,而不是 CronTrigger
。您实际上别无选择,除非您想使用大量重叠的、人工推导的 cron 表达式的极其复杂的集合。
关于java - 每 X 秒触发一次对应的 Cron 表达式是什么,其中 X > 60?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996280/