我想测试一下我的Quartz触发器是否在实际中起作用。 我的Quartz配置如下:
@Configuration
public class QuartzConfiguration {
@Bean
public JobDetail verificationTokenRemoverJobDetails() {
return
JobBuilder
.newJob(VerificationTokenQuartzRemoverJob.class)
.withIdentity("Job for verification token remover")
.storeDurably()
.build();
}
@Bean
public Trigger verificationTokenRemoverJobTrigger(JobDetail jobADetails) {
return
TriggerBuilder
.newTrigger()
.forJob(jobADetails)
.withIdentity("Trigger for verification token remover")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 0/2 1/1 * ? *"))
.build();
}
}
我的Job类如下:
@AllArgsConstructor
public class VerificationTokenQuartzRemoverJob implements Job {
private VerificationTokenRepository verificationTokenRepository;
@Override
public void execute(JobExecutionContext context) {
verificationTokenRepository.deleteAllByCreatedLessThan(LocalDateTime.now().minusMinutes(30));
}
}
当我在日志中启动我的Spring Boot应用程序时,我可以意识到Job在正常工作并周期性触发,但这不足以确认其正常工作。
这就是为什么我决定创建一个JUnit测试的原因。我找到了一个教程:click,但是所有者使用了while(true)子句,根据该主题:click不是一个可取的选择。这里出现一个问题,是否还有其他选项可以验证Job类名称,触发器的身份并检查是否尽可能频繁地调用CRON表达式和具体作业?
如果可能的话,我将感谢您提供有关如何达到理想效果的建议。