@Override public String schedule(Duration triggerDuration, String deadlineName, Object messageOrPayload, ScopeDescriptor deadlineScope) { DeadlineMessage<?> deadlineMessage = asDeadlineMessage(deadlineName, messageOrPayload); String deadlineId = deadlineMessage.getIdentifier(); runOnPrepareCommitOrNow(() -> { DeadlineMessage<?> interceptedDeadlineMessage = processDispatchInterceptors(deadlineMessage); DeadlineTask deadlineTask = new DeadlineTask(deadlineName, deadlineScope, interceptedDeadlineMessage, deadlineId); ScheduledFuture<?> scheduledFuture = scheduledExecutorService.schedule( deadlineTask, triggerDuration.toMillis(), TimeUnit.MILLISECONDS ); scheduledTasks.put(new DeadlineId(deadlineName, deadlineId), scheduledFuture); }); return deadlineId; }
@Override public void schedule(Duration triggerDuration, String deadlineName, Object messageOrPayload, ScopeDescriptor deadlineScope, String scheduleId) { runOnPrepareCommitOrNow(() -> { ScheduledFuture<?> scheduledFuture = scheduledExecutorService.schedule( new DeadlineTask(deadlineName, deadlineScope, messageOrPayload, scheduleId), triggerDuration.toMillis(), TimeUnit.MILLISECONDS ); scheduledTasks.put(new DeadlineId(deadlineName, scheduleId), scheduledFuture); }); }
@Override public String schedule(Duration triggerDuration, String deadlineName, Object messageOrPayload, ScopeDescriptor deadlineScope) { DeadlineMessage<?> deadlineMessage = asDeadlineMessage(deadlineName, messageOrPayload); String deadlineId = deadlineMessage.getIdentifier(); runOnPrepareCommitOrNow(() -> { DeadlineMessage<?> interceptedDeadlineMessage = processDispatchInterceptors(deadlineMessage); DeadlineTask deadlineTask = new DeadlineTask(deadlineName, deadlineScope, interceptedDeadlineMessage, deadlineId); ScheduledFuture<?> scheduledFuture = scheduledExecutorService.schedule( deadlineTask, triggerDuration.toMillis(), TimeUnit.MILLISECONDS ); scheduledTasks.put(new DeadlineId(deadlineName, deadlineId), scheduledFuture); }); return deadlineId; }