View Source Oban.Plugins.Stager (Oban v2.13.4)
Transition jobs to the
:available state when:
- jobs are
:scheduledand the current time is on or after the timestamp specified in
- jobs are
:retryableand they don't reach the attempt limit specified by
Besides changing the state of jobs, this plugin also uses PubSub to notify queues that they have available jobs. This prevents every queue from polling independently and reduces database load.
This module is necessary for the execution of scheduled and retryable jobs. As such, it's started
by each Oban instance automatically unless
plugins: false is specified.
:interval- the number of milliseconds between database updates. This is directly tied to the resolution of scheduled jobs. For example, with an
5_000ms, scheduled jobs are checked every 5 seconds. The default is
:limit— the number of jobs that will be staged each time the plugin runs. Defaults to
5,000, which you can increase if staging can't keep up with your insertion rate or decrease if you're experiencing staging timeouts.
Instrumenting with Telemetry
Oban.Plugins.Stager plugin adds the following metadata to the
[:oban, :plugin, :stop] event:
:staged_count- the number of jobs that were staged in the database