为什么Quartz调度程序的unscheduleJob同时删除触发器和作业详细信息?

问题描述 投票:0回答:2

我正在尝试在集群环境中执行以下石英调度程序代码。

scheduler.unscheduleJob("genericJobTrigger", "DEFAULT");

其中为

Scheduler scheduler = (Scheduler) context.getBean("scheduler");
JobDetail genericJob = (JobDetail) context.getBean("genericJob");
CronTrigger genericJobTrigger = (CronTrigger) context.getBean("genericJobTrigger");

以上代码是从触发器和作业详细信息中删除条目。它应该只删除触发器吗?

为什么Quartz调度程序的unscheduleJob同时删除触发器和作业详细信息?

java quartz-scheduler
2个回答
3
投票

将持久性设置为“作业”,以避免在删除触发器时删除作业。


0
投票

无论何时创建JobDetail的对象然后设置storeDurably(),请参考以下示例:

return JobBuilder.newJob(ScheduledJob.class)
                .setJobData(jobDataMap)
                .withDescription("job executes at specified frequency")
                .withIdentity(UUID.randomUUID().toString(), "email-jobs")
                .storeDurably() //This will not allow to delete automatially
                .build();

还可以通过检查IS_DURABLE表中的jobDetails列的值来验证它。

© www.soinside.com 2019 - 2024. All rights reserved.