@Override public ScheduledCompletableFuture<@Nullable Void> schedule(CronJob job, Map<String, Object> config, String cronExpression) { final CronAdjuster cronAdjuster = new CronAdjuster(cronExpression); final SchedulerRunnable runnable = () -> { job.run(config); }; if (cronAdjuster.isReboot()) { return scheduler.at(runnable, Instant.ofEpochMilli(1)); } else { return scheduler.schedule(runnable, cronAdjuster); } }
@Override public <T> ScheduledCompletableFuture<T> schedule(SchedulerRunnable runnable, Duration... delays) { return scheduler.schedule(runnable, new PeriodicAdjuster(delays)); }
/** * Return a {@link ScheduledCompletableFuture} that resolves at the given epochTime and runs the runnable. * * @param runnable Runs at the given epochTime * @param instant The epoch time * @return A {@link ScheduledCompletableFuture} */ default ScheduledCompletableFuture<@Nullable Void> at(SchedulerRunnable runnable, Instant instant) { return at(() -> { runnable.run(); return null; }, instant); }
@Override public <T> ScheduledCompletableFuture<T> schedule(SchedulerRunnable runnable, Duration... delays) { return scheduler.schedule(runnable, new PeriodicAdjuster(delays)); }
/** * Return a {@link ScheduledCompletableFuture} that resolves at the given epochTime and runs the runnable. * * @param runnable Runs at the given epochTime * @param instant The epoch time * @return A {@link ScheduledCompletableFuture} */ default ScheduledCompletableFuture<@Nullable Void> at(SchedulerRunnable runnable, Instant instant) { return at(() -> { runnable.run(); return null; }, instant); }
@Override public ScheduledCompletableFuture<@Nullable Void> schedule(CronJob job, Map<String, Object> config, String cronExpression) { final CronAdjuster cronAdjuster = new CronAdjuster(cronExpression); final SchedulerRunnable runnable = () -> { job.run(config); }; if (cronAdjuster.isReboot()) { return scheduler.at(runnable, Instant.ofEpochMilli(1)); } else { return scheduler.schedule(runnable, cronAdjuster); } }