Changelog
All notable changes to Oban.Pro
will be documented in this file.
v0.6.0 — 2021-01-26
[Oban.Pro.Plugins.Workflow] Correct typespecs for
new_workflow/1
andlibgraph
related functions.[Oban.Pro.Plugins.DynamicCron] Support inserting and retrieving cron records with a custom prefix. All operations are wrapped in a Multi, which ignored the outer transaction's prefix.
[Oban.Pro.Plugins.Lifeline] Record fully qualified node identities (combining the Oban supervisor name and the host name). This allows Oban Web to track beats recorded by the same host but different instances.
Enhance all plugin span metadata with details such as how many jobs were pruned, inserted, reprioritized, etc. Telemetry events and metadata for all Pro plugins now matches the events from Oban OSS.
Bump Oban dependency to
~> 2.4.0
due to CRON parser changes and improved telemetry span events.
v0.5.3 — 2020-12-09
- [Oban.Pro.Plugins.DynamicPruner] Consider
cancelled
jobs that were never attempted when pruning.
v0.5.2 — 2020-11-27
- [Oban.Pro.Plugins.BatchManager] Check for the correct output from
Worker.from_string
, fixing callback insertion.
v0.5.1 — 2020-11-06
- [Oban.Pro.Plugins.DynamicPruner] Allow state overrides when pruning
cancelled
jobs.
v0.5.0 — 2020-11-06
[Oban.Pro.Workers.Workflow] A new worker that composes arbitrary jobs together for directed execution. This allows sequential, fan-out and fan-in workflows that are horizontally distributed and fault tolerant.
See the Workflow docs for setup and a walk-through with use-cases.
Bump Oban dependency to
~> 2.3.0
due to the workflow worker's use of the newmeta
field inOban.Job
.
v0.4.2 — 2020-10-19
- [Oban.Pro.Plugins.DynamicPruner] Always delete oldest job when pruning in
max_len
mode. Inmax_len
mode, when job insertion exceeded job pruning the oldest jobs would persist between prunes.
v0.4.1 — 2020-10-11
Changed
- Upgrade Oban dependency to
~> 2.2.0
along with fixes for the move toOban.Registry
andOban.Repo
.
v0.4.0 — 2020-10-05
Added
[Oban.Pro.Plugins.DynamicCron] The
DynamicCron
plugin is a replacement for Oban's built in cron scheduler. It supports adding, updating, deleting, pausing and resuming periodic jobs at runtime and boot time. It is an ideal solution for applications that must dynamically start and manage scheduled tasks at runtime.See the DynamicCron installation docs for instructions on getting started.
[Oban.Pro.Plugins.Lifeline] Add
:retry_exhausted
option, which will retry exhausted jobs rather than discard them while rescuing.
Breaking Change
Emit standardized
[:oban, :plugin, :start | :stop | :exception]
events for all plugins. Previously, each plugin would emit its own event, which required extensive:telemetry.attach_many
calls. Now all plugins have a standard event name with differentiated metatada, including a:plugin
key with the module name responsible for emitting the event.To upgrade replace any events that used
:prune
,:lifeline
or:reprioritizer
with:plugin
. For example,[:oban, :prune, :start]
is now[:oban, :plugin, :start]
with the metadata%{plugin: DynamicPruner}
.
v0.3.2 — 2020-08-28
- [Oban.Pro.Plugins.DynamicPruner] Correctly prune
discarded
jobs that were cancelled before they were ever attempted.
v0.3.1 — 2020-08-05
Fixed
- [Oban.Pro.Workers.Batch] Only invoke batch callbacks that are defined for the current worker.
v0.3.0 — 2020-07-10
Fixed
- [Oban.Pro.Plugins.Lifeline] Ignore unknown messages to the plugin to prevent crashes.
Changed
- Bump Oban dependency to
2.0.0
v0.2.1 — 2020-07-01
Added
- Add
handle_exhausted/1
callback toOban.Pro.Workers.Batch
worker. This new callback is triggered when all jobs are eithercompleted
ordiscarded
.
v0.2.0 — 2020-06-12
Fixed
- Conditional improvements to the
BatchManager
plugin
Changed
- Bump Oban dependency to
2.0.0-rc.1
v0.1.0 — 2020-06-03
Initial release including these plugins:
Oban.Pro.Plugins.BatchManager
Oban.Pro.Plugins.DynamicPruner
Oban.Pro.Plugins.Lifeline
Oban.Pro.Plugins.Reprioritizer
As well as the Oban.Pro.Workers.Batch
worker.