blob: a4310af5024800a8d7aae560503547ca4211d057 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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<Void> 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<Void> 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<Void> 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<Void> sampleOneTimeTask) {
System.out.println("Scheduling one-shot testing task to execute now.");
return ignored -> scheduler.schedule(
sampleOneTimeTask.instance("command-line-runner"),
Instant.now()
);
}
}
|