我们在应用程序中配置了几个Quartz作业。在开发过程中,我们使 quartz 调度程序处于待机状态-但是,有时我们想手动启 Action 业(出于开发目的)。如果我调用fireTrigger,它会告诉我需要启动调度程序。但是,如果启动调度程序,它也会立即调度所有其他作业,这不是我想要的(因为它们可能在调试手动执行的作业时触发)。
启动调度程序时,我可以暂停所有触发器,但随后必须处理断火指令等。
有没有一种简单的方法可以手动解雇作业而不必处理暂停和断火(即,即使调度程序处于待机状态,fireTrigger仍然可以工作)?
最佳答案
这是您需要手动触发作业的循环:
scheduler = stdSchedulerFactory.getScheduler();
//note: "stdSchedulerFactory" is the object created of
//the schedulerFactory(Standard) class.
// loop jobs by group
for (String groupName : scheduler.getJobGroupNames()) {
// get jobkey
for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher
.jobGroupEquals(groupName))) {
String jobName = jobKey.getName();
String jobGroup = jobKey.getGroup();
scheduler.triggerJob(jobName, jobGroup);
}
}