diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/scheduler/ExecutorServiceWorkflowScheduler.java b/impl/core/src/main/java/io/serverlessworkflow/impl/scheduler/ExecutorServiceWorkflowScheduler.java index d2e55b3a..b3e0c6ec 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/scheduler/ExecutorServiceWorkflowScheduler.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/scheduler/ExecutorServiceWorkflowScheduler.java @@ -30,14 +30,24 @@ public ExecutorServiceWorkflowScheduler(ScheduledExecutorService service) { @Override public Cancellable scheduleEvery(WorkflowDefinition definition, Duration interval) { + return scheduleEvery(service, definition, interval); + } + + @Override + public Cancellable scheduleAfter(WorkflowDefinition definition, Duration delay) { + return scheduleAfter(service, definition, delay); + } + + public static Cancellable scheduleEvery( + ScheduledExecutorService service, WorkflowDefinition definition, Duration interval) { long delay = interval.toMillis(); return new ScheduledServiceCancellable( service.scheduleAtFixedRate( new ScheduledInstanceRunnable(definition), delay, delay, TimeUnit.MILLISECONDS)); } - @Override - public Cancellable scheduleAfter(WorkflowDefinition definition, Duration delay) { + public static Cancellable scheduleAfter( + ScheduledExecutorService service, WorkflowDefinition definition, Duration delay) { return new ScheduledServiceCancellable( service.schedule( new ScheduledInstanceRunnable(definition), delay.toMillis(), TimeUnit.MILLISECONDS));