Exq.Adapters.Queue behaviour (exq v0.23.0)

View Source

Behaviour for creating Exq queue adapters.

Example

defmodule Exq.Adapters.Queue.CustomAdapter do
  @behaviour Exq.Adapters.Queue
  def enqueue(pid, queue, worker, args, options) do
    {:ok, apply(worker, :perform, args)}
  end

  def enqueue_at(pid, queue, time, worker, args, options) do
    enqueue_somehow(pid, queue, time, worker, args, options)
  end

  def enqueue_in(pid, queue, offset, worker, args, options) do
    enqueue_in_somehow(pid, queue, offset, worker, args, options)
  end
end

Summary

Types

The GenServer name

The server reference

Types

name()

@type name() :: atom() | {:global, term()} | {:via, module(), term()}

The GenServer name

server()

@type server() :: pid() | name() | {atom(), node()}

The server reference

Callbacks

enqueue(server, t, module, list, list)

@callback enqueue(server(), String.t(), module(), list(), list()) :: tuple()

enqueue_all(server, list)

@callback enqueue_all(server(), list()) :: tuple()

enqueue_at(server, t, t, module, list, list)

@callback enqueue_at(server(), String.t(), DateTime.t(), module(), list(), list()) ::
  tuple()

enqueue_in(server, t, integer, module, list, list)

@callback enqueue_in(server(), String.t(), integer(), module(), list(), list()) :: tuple()