v2.17.6
Enhancements
-
[Cron] Include cron indicator and original cron expression in meta.
When the Cron plugin inserts jobs the original, unnormalized cron expression is now stored in a job's meta under the
cron_exprkey. For compatibility with Pro'sDynamicCron, meta also hascron: trueinjected. -
[Worker] Change
backoff/1spec to allow immediate rescheduling by returning0The callback now specifies a
non_neg_integerto allow retrying 0 seconds into the future. This matches the abilitiy to use{:snooze, 0}.
Bug Fixes
-
[Notifier] Revert using single connection to deliver notices.
Production use of the single notifier connection in various environments showed timeouts from bottlenecks in the single connection could crash the connection and start new ones, leaving extra idle processes. In addition, Use interpolated NOTIFY instead of pg_notify with a JSON argument added parsing load because it could no longer use prepared statements.
-
[Worker] Apply custom backoff on timeout and unhandled exit
A worker's custom
backoff/1wasn't applied after aTimeoutErroror unhandled exit. That's because the producer stores the executor struct before resolving the worker module. Now the module is resolved again to ensure custombackoff/1are used. -
[Job] Revert setting the default priority key in Job schema.
The Ecto default was removed to allow overriding the default in the database and it was purposefully removed.