/** * Get a {@link ScheduleBuilder} that is configured to produce a * schedule identical to this trigger's schedule. * * @see #getTriggerBuilder() */ @Override public ScheduleBuilder<CronTrigger> getScheduleBuilder() { CronScheduleBuilder cb = CronScheduleBuilder.cronSchedule(getCronExpression()) .inTimeZone(getTimeZone()); switch(getMisfireInstruction()) { case MISFIRE_INSTRUCTION_DO_NOTHING : cb.withMisfireHandlingInstructionDoNothing(); break; case MISFIRE_INSTRUCTION_FIRE_ONCE_NOW : cb.withMisfireHandlingInstructionFireAndProceed(); break; } return cb; }
/** * Get a {@link ScheduleBuilder} that is configured to produce a * schedule identical to this trigger's schedule. * * @see #getTriggerBuilder() */ @Override public ScheduleBuilder<CronTrigger> getScheduleBuilder() { CronScheduleBuilder cb = CronScheduleBuilder.cronSchedule(getCronExpression()) .inTimeZone(getTimeZone()); switch(getMisfireInstruction()) { case MISFIRE_INSTRUCTION_DO_NOTHING : cb.withMisfireHandlingInstructionDoNothing(); break; case MISFIRE_INSTRUCTION_FIRE_ONCE_NOW : cb.withMisfireHandlingInstructionFireAndProceed(); break; } return cb; }
.withSchedule( CronScheduleBuilder.cronSchedule(cronExpression) .withMisfireHandlingInstructionFireAndProceed()
((CronScheduleBuilder)sched).withMisfireHandlingInstructionDoNothing(); else if(triggerMisfireInstructionConst.equals("MISFIRE_INSTRUCTION_FIRE_ONCE_NOW")) ((CronScheduleBuilder)sched).withMisfireHandlingInstructionFireAndProceed(); else if(triggerMisfireInstructionConst.equals("MISFIRE_INSTRUCTION_SMART_POLICY")) {
((CronScheduleBuilder)sched).withMisfireHandlingInstructionDoNothing(); else if(triggerMisfireInstructionConst.equals("MISFIRE_INSTRUCTION_FIRE_ONCE_NOW")) ((CronScheduleBuilder)sched).withMisfireHandlingInstructionFireAndProceed(); else if(triggerMisfireInstructionConst.equals("MISFIRE_INSTRUCTION_SMART_POLICY")) {
private CronScheduleBuilder setMisfirePolicyForCronTrigger(CronScheduleBuilder cronSchedule, String motechMisfireProperty) { Integer misfirePolicyAsInt = cronTriggerMisfirePolicies.get(motechMisfireProperty); if (misfirePolicyAsInt == null || misfirePolicyAsInt.equals(CronTrigger.MISFIRE_INSTRUCTION_SMART_POLICY)) { return cronSchedule; } if (misfirePolicyAsInt.equals(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING)) { return cronSchedule.withMisfireHandlingInstructionDoNothing(); } if (misfirePolicyAsInt.equals(CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW)) { return cronSchedule.withMisfireHandlingInstructionFireAndProceed(); } if (misfirePolicyAsInt.equals(CronTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY)) { return cronSchedule.withMisfireHandlingInstructionIgnoreMisfires(); } return cronSchedule; }
.withIdentity(buildName(), group) .withSchedule(cronSchedule(cron) .withMisfireHandlingInstructionFireAndProceed() .inTimeZone(TimeZone.getTimeZone(systemDefault()))) .usingJobData("cron", cron)
protected ScheduleBuilder scheduleBuilder() { if (misfirePolicy() == MisfirePolicy.IgnoreMisfires) { return CronScheduleBuilder.cronSchedule(cron()).withMisfireHandlingInstructionIgnoreMisfires(); } else if (misfirePolicy() == MisfirePolicy.DoNothing) { return CronScheduleBuilder.cronSchedule(cron()).withMisfireHandlingInstructionDoNothing(); } else if (misfirePolicy() == MisfirePolicy.FireAndProceed){ return CronScheduleBuilder.cronSchedule(cron()).withMisfireHandlingInstructionFireAndProceed(); } else { return CronScheduleBuilder.cronSchedule(cron()); } }
private Boolean createQuartzJob(JobDetail jobDetail) throws SchedulerException { JobKey jobKey = buildJobKey(jobDetail); // one scheduler for one app Scheduler scheduler = schedulers.getScheduler(); // inject the executor JobDataMap jobData = buildJobData(jobDetail, JobTriggerType.DEFAULT); org.quartz.JobDetail quartzJob = newJob(JobAgent.class) .withIdentity(jobKey) .usingJobData(jobData) .build(); CronScheduleBuilder scheduleBuilder = cronSchedule(jobDetail.getJob().getCron()); if (jobDetail.getConfig().getMisfire()){ // ignore all misfired scheduleBuilder.withMisfireHandlingInstructionDoNothing(); } else { scheduleBuilder.withMisfireHandlingInstructionFireAndProceed(); } Trigger trigger = newTrigger() .withIdentity(buildTriggerKey(jobDetail)) .withSchedule(scheduleBuilder) .build(); // start scheduling the job scheduler.scheduleJob(quartzJob, trigger); return Boolean.TRUE; }
scheduleBuilder.withMisfireHandlingInstructionDoNothing(); else if (misfirePolicy == On.MisfirePolicy.FIRE_AND_PROCEED) scheduleBuilder.withMisfireHandlingInstructionFireAndProceed();
.startAt(startTime) .withSchedule(cronSchedule(cron) .withMisfireHandlingInstructionFireAndProceed() .inTimeZone(TimeZone.getTimeZone(timeZone))) .modifiedByCalendar(QuartzConstants.QUARTZ_CAMEL_CUSTOM_CALENDAR) .startAt(startTime) .withSchedule(cronSchedule(cron) .withMisfireHandlingInstructionFireAndProceed() .inTimeZone(TimeZone.getTimeZone(timeZone))) .build(); .startAt(startTime) .withSchedule(cronSchedule(cron) .withMisfireHandlingInstructionFireAndProceed()) .modifiedByCalendar(QuartzConstants.QUARTZ_CAMEL_CUSTOM_CALENDAR) .build(); .startAt(startTime) .withSchedule(cronSchedule(cron) .withMisfireHandlingInstructionFireAndProceed()) .build();
cronScheduleBuilder.withMisfireHandlingInstructionFireAndProceed();
private static CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob job, CronScheduleBuilder cb) throws TaskException { switch (job.getMisfirePolicy()) { case ScheduleConstants.MISFIRE_DEFAULT: return cb; case ScheduleConstants.MISFIRE_IGNORE_MISFIRES: return cb.withMisfireHandlingInstructionIgnoreMisfires(); case ScheduleConstants.MISFIRE_FIRE_AND_PROCEED: return cb.withMisfireHandlingInstructionFireAndProceed(); case ScheduleConstants.MISFIRE_DO_NOTHING: return cb.withMisfireHandlingInstructionDoNothing(); default: throw new TaskException("The task misfire policy '" + job.getMisfirePolicy() + "' cannot be used in cron schedule tasks" , Code.CONFIG_ERROR); } } }
break; case ONE: cronScheduleBuilder.withMisfireHandlingInstructionFireAndProceed(); break; default:
break; case ONE: cronScheduleBuilder.withMisfireHandlingInstructionFireAndProceed(); break; default:
sb = csb.withMisfireHandlingInstructionFireAndProceed(); } else if (sch.getMisfireAction() == MisfireActionType.RESCHEDULE) { sb = csb.withMisfireHandlingInstructionDoNothing();