我们在应用程序中配置了几个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);
    }

  }

10-08 11:12