@Override public String schedule(Instant triggerDateTime, String deadlineName, Object messageOrPayload, ScopeDescriptor deadlineScope) { DeadlineMessage<Object> deadlineMessage = asDeadlineMessage(deadlineName, messageOrPayload); String deadlineId = JOB_NAME_PREFIX + deadlineMessage.getIdentifier(); runOnPrepareCommitOrNow(() -> { DeadlineMessage interceptedDeadlineMessage = processDispatchInterceptors(deadlineMessage); try { JobDetail jobDetail = buildJobDetail(interceptedDeadlineMessage, deadlineScope, new JobKey(deadlineId, deadlineName)); scheduler.scheduleJob(jobDetail, buildTrigger(triggerDateTime, jobDetail.getKey())); } catch (SchedulerException e) { throw new DeadlineException("An error occurred while setting a timer for a deadline", e); } }); return deadlineId; }
@Override public void schedule(Instant triggerDateTime, String deadlineName, Object messageOrPayload, ScopeDescriptor deadlineScope, String scheduleId) { runOnPrepareCommitOrNow(() -> { DeadlineMessage deadlineMessage = asDeadlineMessage(deadlineName, messageOrPayload); try { JobDetail jobDetail = buildJobDetail(deadlineMessage, deadlineScope, new JobKey(scheduleId, deadlineName)); scheduler.scheduleJob(jobDetail, buildTrigger(triggerDateTime, jobDetail.getKey()), true); } catch (SchedulerException e) { throw new DeadlineException("An error occurred while setting a timer for a deadline", e); } }); }
@Override public String schedule(Instant triggerDateTime, String deadlineName, Object messageOrPayload, ScopeDescriptor deadlineScope) { DeadlineMessage<Object> deadlineMessage = asDeadlineMessage(deadlineName, messageOrPayload); String deadlineId = JOB_NAME_PREFIX + deadlineMessage.getIdentifier(); runOnPrepareCommitOrNow(() -> { DeadlineMessage interceptedDeadlineMessage = processDispatchInterceptors(deadlineMessage); try { JobDetail jobDetail = buildJobDetail(interceptedDeadlineMessage, deadlineScope, new JobKey(deadlineId, deadlineName)); scheduler.scheduleJob(jobDetail, buildTrigger(triggerDateTime, jobDetail.getKey())); } catch (SchedulerException e) { throw new DeadlineException("An error occurred while setting a timer for a deadline", e); } }); return deadlineId; }