【问题标题】:What is corresponding Cron expression to fire in every X seconds, where X > 60?每 X 秒触发的对应 Cron 表达式是什么,其中 X > 60?
【发布时间】:2011-03-01 02:10:36
【问题描述】:

我希望我的作业每 X 秒执行一次,作业和 X 之间存在一对一的匹配。此外,在运行时,可以注册具有自己间隔的新作业。

我尝试为这种情况编写 cron 表达式,但在文档中写到秒的值不能超过 59。所以 cron 表达式是这样的:“0/63 * * * * ?”无效。

乍一看,这个问题的解决方案似乎是这样的表达:“0/3 0/1 * * * ?”,但它的含义完全不同:每分钟每三秒触发一次作业。

您能建议什么是正确的解决方案(cron 表达式)吗?我知道我可以只使用简单的计时器,但我必须使用 Quartz 来使用 cron 作业。

【问题讨论】:

    标签: java cron quartz-scheduler


    【解决方案1】:

    Quartz cron 语法旨在表达基于标准 24 小时 60 分钟时钟的计时。它不适合“每 n 秒”,其中 n 可以是任何值。您无法使用 cron 表达式执行此操作。

    如果您需要使用 Quartz 执行此操作,您应该使用 SimpleTrigger,而不是 CronTrigger。你真的别无选择,除非你想使用一个非常复杂的重叠、人工推导的 cron 表达式集合。

    【讨论】:

    • 谢谢,我不知道 Quartz 有 SimpleTrigger。
    猜你喜欢
    • 2012-02-03
    • 2012-10-23
    • 2013-03-05
    • 1970-01-01
    • 2022-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多