TaskBunny v0.1.0-rc.2 TaskBunny.Queue

Convenience functions for accessing TaskBunny queues.

It’s a semi private module normally wrapped by other modules.

Sub Queues

When TaskBunny creates(declares) a queue on RabbitMQ, it also creates the following sub queues.

  • [queue-name].scheduled: holds jobs to be executed in the future
  • [queue-name].retry: holds jobs to be retried
  • [queue-name].rejected: holds jobs that were rejected (failed more than max retry times or wrong message format)

Summary

Functions

Declares a queue with sub queues

Deletes the queue and its subqueues

Returns a list that contains the queue and its subqueue

Returns a name of rejected queue

Returns a name of retry queue

Returns a name of scheduled queue

Returns the message count and consumer count for the given queue

Returns all subqueues for the work queue

Functions

declare_with_subqueues(host, work_queue)
declare_with_subqueues(%AMQP.Connection{pid: term} | atom, String.t) :: {map, map, map, map}

Declares a queue with sub queues.

Queue.declare_with_subqueues(:default, "normal_jobs")

For this call, the function creates(declares) three queues:

  • normal_jobs: a queue that holds jobs to process
  • normal_jobs.scheduled: a queue that holds jobs to process in the future
  • normal_jobs.retry: a queue that holds jobs failed and waiting to retry
  • normal_jobs.rejected: a queue that holds jobs failed and won’t be retried
delete_with_subqueues(host, work_queue)
delete_with_subqueues(%AMQP.Connection{pid: term} | atom, String.t) :: :ok

Deletes the queue and its subqueues.

queue_with_subqueues(work_queue)
queue_with_subqueues(String.t) :: [String.t]

Returns a list that contains the queue and its subqueue.

rejected_queue(work_queue)
rejected_queue(String.t) :: String.t

Returns a name of rejected queue.

retry_queue(work_queue)
retry_queue(String.t) :: String.t

Returns a name of retry queue.

scheduled_queue(work_queue)
scheduled_queue(String.t) :: String.t

Returns a name of scheduled queue.

state(connection, queue)
state(%AMQP.Connection{pid: term}, String.t) :: map

Returns the message count and consumer count for the given queue.

subqueues(work_queue)
subqueues(String.t) :: [String.t]

Returns all subqueues for the work queue.