Add multiple triggers to single quartz job

∥☆過路亽.° 提交于 2019-12-03 06:28:58

This post gives a hint, but the conclusion ( schedulerInstance.add(trigger) ) is not valid as of Quartz 2.01.

Instead use the following, after assinging the job to the trigger ( one way is using the TriggerBuilder's forJob method )

 schedulerInstance.scheduleJob( newTrigger )
    CronTrigger trigger=null;
    CronTrigger trigger1=null;
    CronTrigger trigger2=null;

    JobDetail job = new JobDetail();
    job.setName("dummyJobName");
    job.setJobClass(ExampleJob.class);

    trigger = new CronTrigger();
    trigger.setName("AppTrigger");
    trigger.setGroup(job.getGroup());
    trigger.setJobName(job.getName());
    trigger.setJobGroup(job.getGroup());
    trigger.setCronExpression("*/2 * * * * ?");

    trigger1 = new CronTrigger();
    trigger1.setName("AppTrigger1");
    trigger1.setGroup(job.getGroup());
    trigger1.setJobName(job.getName());
    trigger1.setJobGroup(job.getGroup());
    trigger1.setCronExpression("*/2 * * * * ?");

    trigger2 = new CronTrigger();
    trigger2.setName("AppTrigger2");
    trigger2.setGroup(job.getGroup());
    trigger2.setJobName(job.getName());
    trigger2.setJobGroup(job.getGroup());
    trigger2.setCronExpression("*/2 * * * * ?");

    Scheduler scheduler = new StdSchedulerFactory().getScheduler();

    scheduler.start();
    scheduler.addJob(job, true);
    scheduler.scheduleJob(trigger);
    scheduler.scheduleJob(trigger1);
    scheduler.scheduleJob(trigger2);

You can call scheduleJob repeatedly. Just make sure that you give each Trigger a unique name/group.

See TriggerBuilder.withIdentity: http://www.quartz-scheduler.org/docs/api/2.0.0/index.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!