View Source Oban.Plugins.Pruner (Oban v2.12.1)

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

This plugin treats all jobs the same and only retains by time. To retain by length or provide custom rules for specific queues, workers and job states see the DynamicPruner plugin in Oban Pro.

options

Options

  • :interval — the number of milliseconds between pruning attempts. The default is 30_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_count - the number of jobs that were pruned from the database

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.