일부 Cron 트리거로 예약 할 수있는 석영 작업이 있습니다.석영 스케줄러 - 작업 간 JobDataMap 만 업데이트
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
이 일을 함께 할 수 있지만, 바로 작업을 트리거 (I 원본을 유지하려면 날짜). 그래서 내 질문 :변경하지 않고 작업간에
JobDetail
또는
JobDataMap
수정할 방법이 있습니까?
저는 석영 1.6.0을 사용하고 있습니다.
그래, 그게 내가 처음 한 일이야. 그러나 새 작업을 예약 할 때 트리거에서 NextFireTime을 변경하는 계산을 수행하고 제 경우에는 과거에 설정하여 다시 트리거합니다. 나는 오늘 내 솔루션을 게시 할 예정이다. –