-
[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.
Oban Releases
Changes
-
Upgrade Oban dependency to
~> 2.2.0
along with fixes for the move toOban.Registry
andOban.Repo
.
Enhancements
-
[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}
.