使用 Java 的 Quartz 作业调度程序,在未执行作业的情况下卡在待机模式

Quartz job scheduler using Java, stuck on standby mode without the job being executed

我有一个 class,我在其中执行一些活动,我想创建一个作业来自动处理此操作,例如每隔 x 分钟安排一次。 我正在使用 Quartz,这个 class 实现了 Job,在我的驱动程序 class 中,我正在创建我的 jobdetail、调度程序和触发器,然后启动它。然而,作业没有被执行,日志信息:

    NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0

我的驱动程序中的调度程序代码 class:

try {

        JobDetail job = JobBuilder.newJob(TestMkFPMJob.class).withIdentity("TestMkFPMJob").build();
        Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(Integer.parseInt(strTimeSched)).repeatForever()).build();


        SchedulerFactory schFactory = new StdSchedulerFactory();
        Scheduler sch = schFactory.getScheduler();
        sch.start();
        sch.scheduleJob(job, trigger);

            } 
      catch (SchedulerException e)
      {
        e.printStackTrace();
        System.out.println("Scheduler Error");
      }

"TestMkFPMJob" 是处理我的操作的作业 class,strTimeSched 已被提取并设置为从

提取的 120

我一直在寻找类似的问题,但似乎找不到任何继续前进的提示,不胜感激。 请注意,这是我第一次使用 Quartz/Job 调度。

带有 NOT STARTED 的日志条目具有误导性,因为每当创建 QuartzScheduler 实例时都会显示。这并不意味着工作不是 运行ning。它是在执行完 Scheduler sch = schFactory.getScheduler(); 行并在下一行启动调度程序后编写的。

如果我以你的例子为例 运行 它在我的电脑上,它按设计工作:

public class Quartz {

    public static void main(String[] args) {
        try {

            JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("myJob").build();
            Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(Integer.parseInt("10")).repeatForever()).build();

            SchedulerFactory schFactory = new StdSchedulerFactory();
            Scheduler sch = schFactory.getScheduler();
            sch.start();
            sch.scheduleJob(job, trigger);

        }
        catch (SchedulerException e)
        {
            e.printStackTrace();
            System.out.println("Scheduler Error");
        }
    }
    public static class MyJob implements Job {
        @Override
        public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            System.out.println("runnning job");
        }
    }
}