【发布时间】:2013-04-11 14:41:51
【问题描述】:
我有一个 Quartz 作业,我可以使用一些 Cron Trigger 来安排它。
ReportSchedule reportSchedule = ... // my object
JobDetail jobDetail = new JobDetail(reportSchedule.getScheduleName(),
reportSchedule.getScheduleGroup(),
ExtendedReportJob.class /* my job */);
jobDetail.getJobDataMap().put("reportSchedule", reportSchedule);
jobDetail.setDescription(reportSchedule.getScheduleDescription());
CronTrigger trigger = ...; // depends on the report schedule
scheduler.scheduleJob(jobDetail, trigger);
此代码成功地将作业和详细信息写入数据库。
reportSchedule 对象包含作业所需的特定参数。不过,我可能想更改参数。
我可以这样做
scheduler.deleteJob(name, group);
scheduler.scheduleJob(jobDetail, trigger);
// where jobDetail.getJobDataMap() has the updated reportSchedule
但是,这样做会立即触发作业,因为触发取决于报告计划,我不想更改它(我想保留原始日期)。所以我的问题是:有没有办法在不改变Trigger 的情况下修改工作之间的JobDetail 或JobDataMap?
我使用的是 Quartz 1.6.0。
【问题讨论】:
标签: java quartz-scheduler