From 819149e5ca103190672ba0944720e7a8cb9b26d0 Mon Sep 17 00:00:00 2001 From: Georg Pfuetzenreuter Date: Mon, 9 May 2022 17:58:40 +0200 Subject: Downgrade to 2.6.7 - Init Hikari + db-scheduler - Downgrade Spring Boot release candidate 2.7-RC1 to stable 2.6.7 - Enable Hikari with MariaDB backend - Move application.properties values to environment variables - Add sample scheduler service - Move Keycloak Bean configuration to appropriately named class - Various minor changes Signed-off-by: Georg Pfuetzenreuter --- .../net/libertacasa/pubsh/web/SchedulerBean.java | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/main/java/net/libertacasa/pubsh/web/SchedulerBean.java (limited to 'src/main/java/net/libertacasa/pubsh/web/SchedulerBean.java') diff --git a/src/main/java/net/libertacasa/pubsh/web/SchedulerBean.java b/src/main/java/net/libertacasa/pubsh/web/SchedulerBean.java new file mode 100644 index 0000000..a4310af --- /dev/null +++ b/src/main/java/net/libertacasa/pubsh/web/SchedulerBean.java @@ -0,0 +1,70 @@ +package net.libertacasa.pubsh.web; + +import java.time.Duration; +import java.time.Instant; + +import javax.sql.DataSource; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.github.kagkarlsson.scheduler.Scheduler; +import com.github.kagkarlsson.scheduler.task.Task; +import com.github.kagkarlsson.scheduler.task.helper.RecurringTask; +import com.github.kagkarlsson.scheduler.task.helper.Tasks; +import static com.github.kagkarlsson.scheduler.task.schedule.Schedules.fixedDelay; +import com.github.kagkarlsson.scheduler.task.schedule.Schedules; + +//@Configuration +//public class SchedulerBean { +// +// public static void run() { +// +// RecurringTask myTask = Tasks.recurring("my-task", FixedDelay.ofSeconds(5)) +// .execute((inst, ctx) -> { +// System.out.println("Executed!"); +// }); +// +// final Scheduler scheduler = Scheduler +// .create(DatabaseBean.dataSource()) +// .startTasks(myTask) +// .pollingInterval(Duration.ofSeconds(5)) +// .registerShutdownHook() +// .build(); +// +// scheduler.start(); +// } +//} + +@Configuration +public class SchedulerBean { + + @Bean + Task recurringSampleTask(CounterService counter) { + return Tasks + .recurring("recurring-sample-task", fixedDelay(Duration.ofMinutes(1))) + .execute((instance, ctx) -> { + System.out.printf("Recurring testing task. Instance: %s, ctx: %s\n", instance, ctx); + CounterService.increase(); + }); + } + + @Bean + Task sampleOneTimeTask() { + return Tasks.oneTime("one-time-sample-task") + .execute((instance, ctx) -> { + System.out.printf("OK, one-shot testing task.\n"); + }); + } + + @Bean + CommandLineRunner executeOnStartup(Scheduler scheduler, Task sampleOneTimeTask) { + System.out.println("Scheduling one-shot testing task to execute now."); + + return ignored -> scheduler.schedule( + sampleOneTimeTask.instance("command-line-runner"), + Instant.now() + ); + } +} -- cgit v1.2.3