我立刻用石英试了火工作,但没工作。 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());
}
}
答案 0 :(得分:0)
最终解决方案是:
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());
}
答案 1 :(得分:0)
正如在评论中提到的那样,您需要确保即使是立即开始工作也会启动调度程序。
您可以使用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());
}