View Source Oban.Plugins.Pruner (Oban v2.14.0)
Periodically delete completed, cancelled and discarded jobs based on age.
using-the-plugin
Using the Plugin
The following example demonstrates using the plugin without any configuration, which will prune jobs older than the default of 60 seconds:
config :my_app, Oban,
plugins: [Oban.Plugins.Pruner],
...
Override the default options to prune jobs after 5 minutes:
config :my_app, Oban,
plugins: [{Oban.Plugins.Pruner, max_age: 300}],
...
🌟 DynamicPruner
To prune on a cron-style schedule, retain jobs by a limit, or provide overrides for specific queues, workers, and job states; see Oban Pro's DynamicPruner.
options
Options
:interval
— the number of milliseconds between pruning attempts. The default is30_000ms
.:limit
— the maximum number of jobs to prune at one time. The default is 10,000 to prevent request timeouts. Applications that steadily generate more than 10k jobs a minute should increase this value.:max_age
— the number of seconds after which a job may be pruned. Defaults to 60s.
instrumenting-with-telemetry
Instrumenting with Telemetry
The Oban.Plugins.Pruner
plugin adds the following metadata to the [:oban, :plugin, :stop]
event:
:pruned_jobs
- the jobs that were deleted from the database
Note: jobs only include id
, queue
, state
, and worker
fields.
Link to this section Summary
Functions
Returns a specification to start this module under a supervisor.
Link to this section Types
@type option() :: Oban.Plugin.option() | {:limit, pos_integer()} | {:max_age, pos_integer()}
Link to this section Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.