【问题标题】:Fire job cron immediately with quartz立即用石英解雇作业 cron
【发布时间】:2015-11-03 21:41:10
【问题描述】:

我尝试使用石英立即启动作业 cron,但无法正常工作。 Obs:这个工作存在于我的数据库中。

这是我用来立即解雇工作的代码:

public class ExecuteJob {

   public static void now(String TriggerKey) throws SchedulerException {

       scheduler = StdSchedulerFactory.getDefaultScheduler();

        // retrieve the trigger
        Trigger oldTrigger = scheduler.getTrigger(triggerKey(TriggerKey, GROUP_JOB));

        scheduler.triggerJob(oldTrigger.getJobKey());
    }
}

【问题讨论】:

  • 您确定调度程序已启动(scheduler.start() 已被调用且未执行任何关机或待机命令)?
  • 所以 triggerJob 应该立即开始我的工作并在工作完成后关闭,不是吗?如果调用 start 方法,我的工作将进入无限循环。即使在启动方法下面调用关闭方法。
  • 我猜你需要一个正在运行的调度程序,即使是立即启动。在触发 triggerJob 之前尝试调用 scheduler.start()
  • 我试过你的解决方案,效果很好,谢谢:)。
  • 在下面的评论中发布了解决方案。

标签: quartz-scheduler


【解决方案1】:

最终的解决方案是:

public static void now(String TriggerKey) throws SchedulerException {
    scheduler = StdSchedulerFactory.getDefaultScheduler();

    Trigger oldTrigger = scheduler.getTrigger(triggerKey(TriggerKey, GROUP_JOB));

    scheduler.start();
    scheduler.triggerJob(oldTrigger.getJobKey());
  }

【讨论】:

    【解决方案2】:

    正如 cmets 中提到的,您需要确保调度程序已启动,即使是立即启动作业。

    您可以将isStarted() 方法与“isInStandbyMode()”和“isShutdown()”方法结合使用来检查。
    请注意,isStarted“仅反映是否曾在此调度程序上调用过 start(),因此即使调度程序当前处于待机模式或自关机后它也将返回 true”。

    要启动调度程序,请使用start() 方法:

    public static void now(String TriggerKey) throws SchedulerException {
    
       scheduler = StdSchedulerFactory.getDefaultScheduler();
    
        // retrieve the trigger
        Trigger oldTrigger = scheduler.getTrigger(triggerKey(TriggerKey, GROUP_JOB));
    
        // start the scheduler
        if (!scheduler.isStarted() || scheduler.isInStandbyMode() || scheduler.isShutdown())
            scheduler.start() 
    
        scheduler.triggerJob(oldTrigger.getJobKey());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 2017-02-09
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多