# `Storehouse.Runner.Oban`
[🔗](https://github.com/hattoriai/storehouse/blob/v0.2.0/lib/storehouse/runner/oban.ex#L34)

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`).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
