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.NONEadded that does not add extra execution attempts in case of a failure - a task is strictly executed according to the schedule;FailureSettings.maxAttemptsadded 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,fixedDelayandcronschedule settings clarified -FailureSettingsalways overridefixedRateandfixedDelaybut it does not overridecronin case of the calculated date time viaFailureSettingsis 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.executemethod contract changed. Method receivesScheduledTaskContext contextargument.ScheduledTaskLifecycleListenermethod contracts changed. Methods receiveScheduledTaskContext contextarguments.
2.0.1 (11-11-2021)
- H2, MSSQL, Oracle databases support added;
- Library example written;
- Project description written in the
README.mdfile
2.0.0 (11-11-2021)
- Failure settings added that allows configuring scheduled task retry policies in case of failures;
- breaking changes
maxExecutionLockIntervalfield pruned fromScheduleSettings. UseScheduleSettings.failureSettingsinstead.
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.schedulemethod argument order changed;ru.yoomoney.tech.dbqueue.scheduler.models.ScheduledTask.getIdentitymethod added;scheduledTaskIdentityfield pruned fromScheduledTaskSettings.
0.3.0 (28-10-2021)
ScheduledTaskLifecycleListenerintroduced - 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-coreanddb-queue-scheduler-springthat gives spring library configuration entry-point; - Implemented core library API:
Scheduler,ScheduledTask,ScheduledTaskIdentityandScheduledTaskExecutionResult; - Implemented core library functionality -
db-queuelibrary integration, scheduling tasks feature; CronNextExecutionTimeProviderimplemented
0.1.0 (26-10-2021)
- Library skeleton set up: gradle and library-project-plugin, travis, git attributes, license.