BroadwayPgQue.Pool behaviour (broadway_pgque v0.1.0)

Copy Markdown View Source

Behaviour for PostgreSQL connection pooling and query execution.

Enables BroadwayPgQue to operate completely independently of Ecto, supporting:

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

params()

@type params() :: [term()]

query_opts()

@type query_opts() :: keyword()

sql()

@type sql() :: String.t()

state()

@type state() :: term()

Callbacks

init(opts)

(optional)
@callback init(opts :: keyword()) :: {:ok, state()} | {:error, term()}

Initializes the connection pool or validates options. Returns {:ok, state} or {:error, reason}.

query(state, sql, params, query_opts)

@callback query(state(), sql(), params(), query_opts()) ::
  {:ok, Postgrex.Result.t()} | {:error, term()}

Executes a query using the connection pool.