【发布时间】:2015-03-27 19:59:48
【问题描述】:
我是 Quartz Scheduler 的新手,有以下要求
我需要做两份工作。根据第一个作业响应,需要立即触发第二个作业。
我阅读了 jon 链接的不同方法,在浏览了列表之后,我最终确定了 JobDataMap 方法。
第一份工作:
public void method callJob()
JobDetail jobDetail = JobBuilder.newJob(DataProcurementJob.class)
.withIdentity("Job1, "JobGroup1")
.build();
JobDataMap jobDataMap = jobDetail.getJobDataMap();
jobDataMap.put("NEXT_JOB", "com.abc.test.Jobs.DataLoadJob");
jobDataMap.put("PARAM1", "VALUE1");
jobDataMap.put("PARAM2", "VALUE2");
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("DataProcurementTrigger1", "DataProcurementTrigger")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build() ;
//Schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(jobDetail,trigger);
scheduler.start();
}
Execute Method class :
public job1Class implements job {
If (condition == false){
keep running Job1
}
else
{
Call Job2
}
}
我已经实现了上面的代码,但是第二个工作没有启动。我正在作业 2 中打印一份声明。
有人可以建议如何只调用第二个作业一次吗?
【问题讨论】:
标签: java quartz-scheduler job-scheduling