Three replicas of one application against one PostgreSQL database, proving duplicate @Scheduled execution and then removing it with ShedLock: 24 executions where 8 were due, then 7 for 7 ticks. Also measured: @SchedulerLock without @EnableSchedulerLock does nothing and warns about nothing; spring.task.scheduling.pool.size=1 does not starve a fixedRate job but delays it and fires 35 of 40 executions in a burst; and a node whose clock is 40 seconds fast takes a live lock unless the provider uses usingDbTime().
13 lines
555 B
Plaintext
13 lines
555 B
Plaintext
== spring.task.scheduling.pool.size=1 (the default) ==
|
|
|
|
over 8 seconds, three @Scheduled methods on one application
|
|
slow() fixedRate 2000 ms, sleeps 1800 ms : 5 executions
|
|
fast() fixedRate 200 ms : 40 executions
|
|
throwing() fixedRate 300 ms, always throws : 27 executions
|
|
distinct scheduler threads : 1 [scheduling-1]
|
|
|
|
longest gap between two fast() executions : 1995 ms (200 ms was the schedule)
|
|
fast() executions that started within 20 ms
|
|
of the previous one (the catch-up burst) : 35
|
|
|