Scheduler.triggerJob 不触发作业

Scheduler.triggerJob does not trigger the job

我正在尝试在测试中执行我的 quartz 作业,但它们似乎没有被触发。 'runJob()' 永远不会执行。没有异常,日志中没有错误。我错过了什么?有什么想法吗?

@Autowired
Scheduler scheduler;

@Test
@Transactional
public void MyJobTest() {
    //Create a new Job
    JobKey jobKey = JobKey.jobKey(MyJob.class.getSimpleName(), JobGroupEnum.GROUP1.getName());
    JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity(jobKey).storeDurably(true).build();
    try {
        scheduler.addJob(job, true); //Register this job to the scheduler
        scheduler.triggerJob(job.getKey()); //Immediately trigger the Job
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这是日志:

Starting Quartz Scheduler now
Scheduler quartzScheduler_$_NON_CLUSTERED started.
Started MyJobTest in 20.965 seconds (JVM running for 22.537)
Began transaction (1) for test context [DefaultTestContext@704deff2 testClass = MyJobTest, testInstance = ....
Rolled back transaction for test: [DefaultTestContext@704deff2 testClass = MyJobTest, testInstance = ....
Scheduler quartzScheduler_$_NON_CLUSTERED paused.
Shutting down ExecutorService 'applicationTaskExecutor'
Shutting down Quartz Scheduler
Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
Scheduler quartzScheduler_$_NON_CLUSTERED paused.
Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.

(根据评论建议Quartz example

triggerJob() 之后添加以下行使其生效:

Thread.sleep(2L * 1000L); //sleep for 2 seconds so scheduler has time to fire off the job
scheduler.shutdown(true); //passing true tells the Quartz Scheduler to wait until all jobs have completed running