java - 每 X 秒触发一次对应的 Cron 表达式是什么,其中 X > 60?

标签 java cron quartz-scheduler

我希望我的作业每 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/

相关文章:

java - 使用 Android 连接到网络共享

java - 为什么我的所有标签在 boderLayout WEST 时都间隔 4 个选项卡?

java - 如何以编程方式测试断言是否启用?

linux - 使用 crontab 从数据库中删除旧记录

php - 没有为特定文件执行 cronjob

spring - 在 Quartz JDBC 支持的集群的每个节点上运行一个作业

java - 方法 Calendal.getInstance(Locale aLocale) 中的区域设置

bash - crontab 和手动运行脚本之间的不同结果

java - 使用条件查询现有触发器的quartz

java - Spring Boot Apache Camel Quartz JDBC 调度器