Db Scheduler Versions Save

Persistent cluster-friendly scheduler for Java

v14.0.0

4 weeks ago

Changelog

🚀 Features

  • 823c9d2 Add tracking of heartbeat results and executions with stale heartbeat (#432), closes #402 #432. Generally making heartbeating more robust. See PR description for details.
  • d422cfb Introduces setting alwaysPersistTimestampInUTC() for MySQL and MariaDB users (#471), closes #471. This PR changed the default behavior, which was later reverted in #481. See PR description for details.
  • bb17380 Remove Java 8 support (#456), closes #456

🐛 Fixes

  • b5578ef Revert change in behavior for MariaDB and MySQL with regards to time zone assumptions for persisted timestamps (#481), closes #481
  • 4d3b5bb Update Oracle schema to use timezone-aware type (#457), closes #457. Oracle users are encouraged to change type for timestamp-columns to TIMESTAMP(6) WITH TIME ZONE.
  • a27383a use varchar instead of (deprecated) text column type for MSSQL schema (#455), closes #454 #455
  • 7798c35 Fix bug that causes cronpatterns with no next execution-time to fail. (#435), closes #361 #435

  • cadf433 logging improvement and readme

Contributors

We'd like to thank the following people for their contributions:

v13.0.0

5 months ago

Changelog

Disclaimer: This is a major release in the sense that the changes in this release affects a larger part of the codebase. In particular, polling logic and per-database customizations (like LIMIT). There is good test-coverage for all of these changes, but I would still advice to let it sit in a test-environment for a while before promoting to production, to verify it is working as expected and does not produce any noise in the logs. Se PR #371 for more details.

🚀 Features

  • PR #371 (31c4bab). Recommended to see PR description and code for more details. Closes #264 #273 #337 #348
    • Adds explicit LIMIT to polling for most databases (SqlServer, Mysql, MariaDB, Oracle). This might improve query-plans.
    • Lays groundwork to support lock-and-fetch for more dialects than PostgreSQL
    • JdbcRunner transaction and batch-update support (micro-jdbc)

📝 Documentation

  • bbe25d7 Add Swan to the list of users (#426)
  • a47057d Update README with new Lightyear link (#421)
  • e098bd2 Improve Examples (#420)
  • ff6c39f Add links to third-party extensions, in particular
    • bekk/db-scheduler-ui is admin-ui for the scheduler. It shows scheduled executions and supplies simple admin-operations such as "rerun failed execution now" and "delete execution".
    • rocketbase-io/db-scheduler-log is an extention providing a history of executions, including failures and exceptions.

Contributors

We'd like to thank the following people for their contributions:

v12.5.0

8 months ago

Changelog

🐛 Fixes

  • c43024e getScheduledExecutions(...) should be able to return executions with unresolved tasks (#418), closes #418

⚠️ Behavior changes

  • SchedulerClient.getScheduledExecution() will now also return executions with an unresolved task
  • SchedulerClient.getScheduledExecutions() will now also by default return executions with unresolved tasks
  • The filter ScheduledExecutionsFilter.all()will now indicate that also executions with unresolved tasks should be returned

Contributors

We'd like to thank the following people for their contributions:

v12.4.0

10 months ago

Changelog

🚀 Features

  • ebc7d95 Candidate provided due and housekeeper executors (#393), closes #392 #393

🛠 Build

  • 7fe47dc maven: Version upgrades (#405), closes #405

📝 Documentation

  • 752ed44 Update README.md (#403), closes #388 #403

Contributors

We'd like to thank the following people for their contributions:

v12.3.0

10 months ago

Changelog

🚀 Features

  • 448d6d4 add a maxRetriesExceededHandler to the MaxRetriesFailureHandler (#397), closes #394 #396 #397

Contributors

We'd like to thank the following people for their contributions:

  • Piotr Olaszewski

v12.2.0

11 months ago

Changelog

🚀 Features

  • 0cbf3d9 support multiple cron-styles (#386), closes #384 #386

🛠 Build

  • 0e9f2a8 license header
  • 5b51b8e Let JReleaser close related issues
  • ddad008 Forbid JReleaser to overwrite old releases to avoid mistakes

Contributors

We'd like to thank the following people for their contributions:

v12.1.0

1 year ago

Changelog

🔄️ Changes

  • f480910 Refactor dependency-management for better spring-boot compatibility (#383), closes #383
  • 10859d5 replace opentable embedded postgres with zonky (#382), closes #382

Contributors

We'd like to thank the following people for their contributions:

v12.0.1

1 year ago

Changelog

🐛 Fixes

  • 431f162 Use Spring v5.3+ cron-style (#378)
  • aa41837 Reformat source code using spotless plugin and google java-format. (PR #375)
  • c03aadd FailureHandlers should use timeDone Instant to calculate next try (#379)

🛠 Build

  • 6da6453 Release using JReleaser (#380), closes #380

🎉 Contributors & Sponsorship

We'd like to thank the following people for their contributions:

Additionally, a big thanks to our two new sponsors, matt-snider and robinheghan 🎉.

12.0.0

1 year ago
  • Changing to semantic versioning.
  • It is now possible to sponsor work on db-scheduler and so contributing to sustainable open-source development. Many thanks to rocketbase-io and gauthamchandra, our first sponsors 🎉
  • PR #368 changes shutdown sequence to avoid executions that are slow to stop will be detected as dead since the heartbeat-thread already has stopped. Fixes #365.
  • PR 357 adds support for specifying JdbcCustomizer in spring boot via DbSchedulerCustomizer. The same PR also fixes missing serialVersionUID for Serializable classes. This will be a breaking change for everyone already using dynamic recurring tasks, i.e PersistentCronSchedule and friends. See notes below.

Breaking changes Unfortunately a couple of Serializable classes missing serialVersionUID was added in previous releases (releated to dynamic recurring tasks). This was a mistake, as that will break Java serialization for all changes to the classes, even if they are backwards compatible. This is addressed in this release, but means that anyone already serializing these classes will get a InvalidClassException after upgrading to this version or later. The workaround is to migrate away from these classes before upgrading, and then optionally migrating back to fixed classes after upgrade (or not). See section on migrating serializers in README and SerializerWithFallbackDeserializers for hints on how to migrate serialization. This only affects Java serialization.

11.7

1 year ago
  • PR #205 improves community profile (issue-templates etc). Contributed by zendern
  • PR #356 adds the ability to pause the Scheduler's check for due executions using scheduler.pause(). Contributed by tkosgrabar
  • PR #349 adds a more comprehensive set of Spring Boot examples showing the capabilities of db-scheduler.