Durable.Queue.Manager (Durable v0.1.0-rc)

View Source

Supervises queue pollers and worker supervisors.

The Manager creates a supervision tree for each configured queue:

  • A DynamicSupervisor for workers
  • A Poller for the queue

It also starts the StaleJobRecovery process and a Registry for looking up pollers by queue name.

Configuration

Queue configuration is passed via the Durable config:

{Durable,
 repo: MyApp.Repo,
 queues: %{
   default: [concurrency: 10, poll_interval: 1000],
   high_priority: [concurrency: 20, poll_interval: 500]
 }}

Summary

Functions

Returns a specification to start this module under a supervisor.

Drains a queue, waiting for active jobs to complete.

Pauses a queue, stopping it from claiming new jobs.

Returns the list of configured queues for a Durable instance.

Starts the queue manager supervisor.

Returns statistics for a queue from the adapter.

Returns the status of a queue.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

drain(durable_name \\ Durable, queue_name, timeout \\ 30000)

@spec drain(atom(), atom() | String.t(), timeout()) :: :ok | {:error, :timeout}

Drains a queue, waiting for active jobs to complete.

pause(durable_name \\ Durable, queue_name)

@spec pause(atom(), atom() | String.t()) :: :ok

Pauses a queue, stopping it from claiming new jobs.

queues(durable_name \\ Durable)

@spec queues(atom()) :: [String.t()]

Returns the list of configured queues for a Durable instance.

resume(durable_name \\ Durable, queue_name)

@spec resume(atom(), atom() | String.t()) :: :ok

Resumes a paused queue.

start_link(opts)

@spec start_link(keyword()) :: Supervisor.on_start()

Starts the queue manager supervisor.

stats(durable_name \\ Durable, queue_name)

@spec stats(atom(), atom() | String.t()) :: map()

Returns statistics for a queue from the adapter.

status(durable_name \\ Durable, queue_name)

@spec status(atom(), atom() | String.t()) :: map()

Returns the status of a queue.