Oban Releases

Pro v0.8.0

Enhancements

  • [PG] An alternate Oban.Notifier implementation based on pg/pg2 for use with Distributed Erlang.

  • [DynamicCron] Store timezone overrides for individual cron entries.

    Along with the a timezone for the DynamicCron plugin, individual cron entries now support a timezone override. The timezone can be set when inserting or updating cron entries.

Changes

  • [Relay] Decode relay results using the :safe option to prevent possible atom table exhaustion or remote code injection.

Bug Fixes

  • [SmartEngine] Implementing a cancel_job/2 callback within the engine makes cancelling jobs safe. Previously cancelling a job could leave the job id in the list of running jobs, which could eventually exhaust the concurrency limit and prevent a queue from running new jobs.

Pro v0.8.1

Bug Fixes

  • [SmartEngine] Correctly track the rate limit window between days.

    Rate limited queues could get stuck when fetch invocations straddled midnight. In that scenario the queue wouldn’t start fetching more until the clock time for the current day exceeded the last recorded time from the previous day.

  • [SmartEngine] Silence operations in multi transactions. The log level wasn’t respected for some frequently used operations.

  • [Relay] Remove “local” optimization that could incorrectly prevent results from getting back to the calling node.

Pro v0.8.2

Bug Fixes

  • [Workflow] Ensure a minimum snooze when all deps are scheduled.

    When an upstream dependency was scheduled to run right now, or sometime in the past, it would return an invalid value like {:snooze, 0}. In that case the result was considered a success and the job wouldn’t run as expected.

  • [DynamicCron] Prevent crashing when a cron’s worker module is missing. This could happen during rolling or blue/green deploys.

  • [PG] Correct ident check when receiving scoped messages for pause, resume, or scale type actions.