View Source Oban.Notifiers.Postgres (Oban v2.17.0)

A Postgres LISTEN/NOTIFY based Notifier.

Connection Pooling

Postgres PubSub is fine for most applications, but it doesn't work with connection poolers like PgBouncer when configured in transaction or statement mode, which is standard. Notifications are required for some core Oban functionality, and you should consider using an alternative notifier such as Oban.Notifiers.PG.

Usage

Specify the Postgres notifier in your Oban configuration:

config :my_app, Oban,
  notifier: Oban.Notifiers.Postgres,
  ...

Transactions and Testing

The notifications system is built on PostgreSQL's LISTEN/NOTIFY functionality. Notifications are only delivered after a transaction completes and are de-duplicated before publishing. Typically, applications run Ecto in sandbox mode while testing, but sandbox mode wraps each test in a separate transaction that's rolled back after the test completes. That means the transaction is never committed, which prevents delivering any notifications.

To test using notifications you must run Ecto without sandbox mode enabled, or use Oban.Notifiers.PG instead.

Summary

Functions