使用Quartz 2.2.1获取数据库中的现有cron触发器

时间:2016-11-07 06:01:36

标签: java quartz-scheduler crontrigger

我有一个更新cron触发器函数,它具有输入参数作为DTO对象,其中包含以下参数

@Autowired
SchedulerFactoryBean schedulerFactory;

public void editTrigger(SchedulerDTO schedulerDto) throws SchedulerException {
    Scheduler scheduler = schedulerFactory.getScheduler();
    if(schedulerDto.getCronTriggerGroup() == null || schedulerDto.getCronTriggerGroup().isEmpty()){
        schedulerDto.setCronTriggerGroup(Scheduler.DEFAULT_GROUP);
    }

    Trigger updatedTrigger =  TriggerBuilder.newTrigger()
                            .withIdentity(schedulerDto.getCronTriggerName(), schedulerDto.getCronTriggerGroup())
                            .withSchedule(CronScheduleBuilder.cronSchedule(schedulerDto.getCronExpression()))
                            .build();

    CronTrigger trigger = cronTrigger.getObject(); // this line of code fetches the 
//cron trigger definition from my xml which is kind of hard coded.
// I want to fetch an existing CronTrigger  in this line from the data I receive from the Scheduler DTO.
    scheduler.rescheduleJob(trigger.getKey(), updatedTrigger);
}

public class SchedulerDTO {

private String cronExpression;
private String cronTriggerName;
private String cronTriggerGroup;
private String jobDetailName;
private String jobDetailGroup;

// setters and getters
}

我正在使用自动装配的Scheduler对象。所以我想从我要求的上述细节中获取cron触发器对象。 我检查了调度程序对象的可用函数以查找现有的Cron触发器,并且所有这些函数都需要CronTriggerKey作为参数。我没有从请求传入CronTriggerKey对象,所以我想使用上面的参数获取现有的CronTrigger。我正在使用Quartz 2.2.1。有人可以帮忙吗?

我目前的代码如下:

{{1}}

0 个答案:

没有答案