Storehouse.Runner.Oban (Storehouse v0.2.0)

Copy Markdown View Source

A runner (Storehouse.Runner) in Oban: each job an Oban job (Storehouse.Runner.Oban.Worker), kept in the app's database, so it outlives a deploy, and retried with Oban's backoff, up to the job's :max_attempts. A job waiting is not inserted twice (Oban's unique).

The default runner when the app runs an Oban instance named Oban.

The queue, and the instance

Its jobs go on the queue the app names, in its config, whether this runner is the default or named:

config :storehouse, Storehouse.Runner.Oban, queue: :media, name: MyApp.Oban

config :my_app, Oban, queues: [default: 10, media: 4]

With no :queue, they go on :storehouse. A queue the instance does not run is told once in the log: its jobs would wait.

Options

In config :storehouse, Storehouse.Runner.Oban, or as the runner's own ({Storehouse.Runner.Oban, queue: :media}), which take their place:

  • :name - the Oban instance. The default is Oban.
  • :queue - the default is :storehouse.
  • :max_attempts - in place of each job's own.
  • Any other option of Oban.Job.new/2 (:priority, :tags).