Behaviour for PostgreSQL connection pooling and query execution.
Enables BroadwayPgQue to operate completely independently of Ecto, supporting:
BroadwayPgQue.Pool.Postgrex- Pure Postgrex connection or dedicated pool (zero Ecto dependency).BroadwayPgQue.Pool.Ecto- Uses an existingEcto.Repopool.- Custom pooling modules (e.g., custom DBConnection, PgBouncer pooler, or test mocks).
Example Custom Pool
defmodule MyCustomPool do
@behaviour BroadwayPgQue.Pool
@impl true
def init(opts) do
{:ok, opts[:conn_name]}
end
@impl true
def query(conn_name, sql, params, opts) do
Postgrex.query(conn_name, sql, params, opts)
end
end
Summary
Callbacks
Initializes the connection pool or validates options.
Returns {:ok, state} or {:error, reason}.
Executes a query using the connection pool.
Types
Callbacks
Initializes the connection pool or validates options.
Returns {:ok, state} or {:error, reason}.
@callback query(state(), sql(), params(), query_opts()) :: {:ok, Postgrex.Result.t()} | {:error, term()}
Executes a query using the connection pool.