3.2.0 (18-03-2022)
- Upgrade dependency versions
- ru.yoomoney.tech:db-queue-core: 15.0.0 -> 15.1.0
- ru.yoomoney.tech:db-queue-spring: 15.0.0 -> 15.1.0
- com.cronutils:cron-utils: 9.1.5 -> 9.1.6
3.1.2 (04-03-2022)
- Next execution delay rounding type changed from flooring to ceiling. It prevents one-second early scheduled tasks execution. It might be crucial for instant cron tasks. For instance, a schedule is defined by the following cron expression "0 0 3 * * *" which means "every day at 3 AM". If the task is executed at 2.59 AM and finished at 2.59 AM, it might be scheduled at 3 AM again.
3.1.1 (09-02-2022)
- Next execution time calculation was fixed. Large time difference between database and application or fast executions of scheduled tasks might have led to repeated execution. That was possible because the execution time calculation relied on the application clock and the tasks picking mechanism relied on the database clock.
3.1.0 (02-12-2021)
FailRetryType.NONE
added that does not add extra execution attempts in case of a failure - a task is strictly executed according to the schedule;FailureSettings.maxAttempts
added that boards maximum of extra execution attempts in case of a failure - if limit is exceeded, a task will be executed according to the schedule;fixedRate
,fixedDelay
andcron
schedule settings clarified -FailureSettings
always overridefixedRate
andfixedDelay
but it does not overridecron
in case of the calculated date time viaFailureSettings
is later than the time calculated bycron
.
3.0.0 (19-11-2021)
- Scheduled task states added that allows implementing stateful scheduled tasks;
- Scheduled task context added that contains its meta-information;
- breaking changes
ScheduledTask.execute
method contract changed. Method receivesScheduledTaskContext context
argument.ScheduledTaskLifecycleListener
method contracts changed. Methods receiveScheduledTaskContext context
arguments.
2.0.1 (11-11-2021)
- H2, MSSQL, Oracle databases support added;
- Library example written;
- Project description written in the
README.md
file
2.0.0 (11-11-2021)
- Failure settings added that allows configuring scheduled task retry policies in case of failures;
- breaking changes
maxExecutionLockInterval
field pruned fromScheduleSettings
. UseScheduleSettings.failureSettings
instead.
1.1.1 (09-11-2021)
- Race condition on scheduling tasks fixed
1.1.0 (08-11-2021)
- Scheduled tasks info feature implemented that allows listing all scheduled tasks details;
- Rescheduling tasks feature implemented that allows forcing task execution manually;
1.0.0 (29-10-2021)
- Toggling scheduled tasks feature implemented -
ScheduledTaskSettings.enabled
; - Improved library api usage experience - look at the breaking changes;
- breaking changes
ru.yoomoney.tech.dbqueue.scheduler.Scheduler.schedule
method argument order changed;ru.yoomoney.tech.dbqueue.scheduler.models.ScheduledTask.getIdentity
method added;scheduledTaskIdentity
field pruned fromScheduledTaskSettings
.
0.3.0 (28-10-2021)
ScheduledTaskLifecycleListener
introduced - that helps to observe task execution, eg: tracing, logging, monitoring, etc.- tracing support, logging support implemented;
- brave tracing support implemented in a separate module -
db-queue-scheduler-brave
.
0.2.0 (27-10-2021)
- Library split into 2 modules:
db-queue-scheduler-core
anddb-queue-scheduler-spring
that gives spring library configuration entry-point; - Implemented core library API:
Scheduler
,ScheduledTask
,ScheduledTaskIdentity
andScheduledTaskExecutionResult
; - Implemented core library functionality -
db-queue
library integration, scheduling tasks feature; CronNextExecutionTimeProvider
implemented
0.1.0 (26-10-2021)
- Library skeleton set up: gradle and library-project-plugin, travis, git attributes, license.