【问题标题】:quartz running only in even minutes石英仅在偶数分钟内运行
【发布时间】:2013-02-14 08:41:39
【问题描述】:

我正在使用石英调度程序。当我为我的工作创建触发器时,我正在使用trigger.setStartTime() 为其设置开始时间。现在我的问题是在第一次火灾时间它运行到最近的偶数时间。让我们用一个例子来解释上面的情况。我的触发器开始时间是:Thu Feb 14 13:53:00 IST 2013。重复 cron 表达式是每两分钟一次。所以,第一次开火时间是Thu Feb 14 13:55:00 IST 2013。但它在Thu Feb 14 13:54:00 IST 2013 被解雇。从那里它每两分钟运行一次,即13:56:00,13:58:00 等。但我想从触发器开始时间每两分钟触发一次工作。请帮助我实现这一目标。

提前致谢。

【问题讨论】:

  • 如果您共享部分代码会很有帮助。仔细检查 TriggerBuilder 和 .scheduleJob 方法,确保将开始时间设置为 13:53:00
  • 显示你的代码如何设置 startTime 来触发
  • 感谢您的回复。我使用的是quartz 1.8。我的代码如下 CronTrigger trigger = new CronTrigger("sample job name","Sample Job Group"); trigger.setStartTime(finalStartingDate);这里 finalStartingDate 返回用户输入的开始日期。

标签: java quartz-scheduler


【解决方案1】:

您使用的是哪个版本的 Quartz,您是如何构建触发器的?如果您使用的是 2.0 或更高版本,您可能应该使用类似 DSL 的 TriggerBuilder 和 SimpleTrigger/SimpleSchedule 来快速构建触发器,并且不易出错。

Quartz Tutorial Lesson 5

你的触发器最终会像这样:

trigger = newTrigger()
    .withIdentity("my-trigger", "my-group")
    .withSchedule(simpleSchedule()
        .withIntervalInMinutes(2)
        .repeatForever())
    .build();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多