exq v0.13.2 Exq

Link to this section Summary

Functions

Enqueue a job immediately

Schedule a job to be enqueued at a specific time in the future

Schedule a job to be enqueued at in the future given by offset in milliseconds

Called when an application is started

Subscribe to a queue - ie. listen to queue for jobs

  • pid - PID for Exq Manager or Enqueuer to handle this
  • queue - Name of queue
  • concurrency - Optional argument specifying max concurrency for queue

List all subscriptions(active queues)

  • pid - PID for Exq Manager or Enqueuer to handle this

Unsubscribe from a queue - ie. stop listening to queue for jobs

  • pid - PID for Exq Manager or Enqueuer to handle this
  • queue - Name of queue

Unsubscribe from all queues - ie. stop listening for jobs

  • pid - PID for Exq Manager or Enqueuer to handle this

Get the job metadata

  • name - registered name of Exq. Only necessary if the custom name option is used when starting Exq. Defaults to Exq
  • pid - pid of the worker. Defaults to self()

Link to this section Functions

Link to this function

enqueue(pid, queue, worker, args)

Enqueue a job immediately.

Expected args:

  • pid - PID for Exq Manager or Enqueuer to handle this
  • queue - Name of queue to use
  • worker - Worker module to target
  • args - Array of args to send to worker
  • options - job options, for example [max_retries: Integer]

Returns:

  • {:ok, jid} if the job was enqueued successfully, with jid = Job ID.
  • {:error, reason} if there was an error enqueueing job
Link to this function

enqueue(pid, from, queue, worker, args)

Link to this function

enqueue(pid, from, queue, worker, args, options)

Link to this function

enqueue_at(pid, queue, time, worker, args)

Schedule a job to be enqueued at a specific time in the future.

Expected args:

  • pid - PID for Exq Manager or Enqueuer to handle this
  • queue - name of queue to use
  • time - Time to enqueue
  • worker - Worker module to target
  • args - Array of args to send to worker
  • options - job options, for example [max_retries: Integer]
Link to this function

enqueue_at(pid, from, queue, time, worker, args)

Link to this function

enqueue_at(pid, from, queue, time, worker, args, options)

Link to this function

enqueue_in(pid, queue, offset, worker, args)

Schedule a job to be enqueued at in the future given by offset in milliseconds.

Expected args:

  • pid - PID for Exq Manager or Enqueuer to handle this
  • queue - Name of queue to use
  • offset - Offset in seconds in the future to enqueue
  • worker - Worker module to target
  • args - Array of args to send to worker
  • options - job options, for example [max_retries: Integer]
Link to this function

enqueue_in(pid, from, queue, offset, worker, args)

Link to this function

enqueue_in(pid, from, queue, offset, worker, args, options)

Link to this function

start(type, args)

Called when an application is started.

This function is called when an application is started using Application.start/2 (and functions on top of that, such as Application.ensure_started/2). This function should start the top-level process of the application (which should be the top supervisor of the application's supervision tree if the application follows the OTP design principles around supervision).

start_type defines how the application is started:

  • :normal - used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another node and the application specification key :start_phases is :undefined.
  • {:takeover, node} - used if the application is distributed and is started on the current node because of a failover on the node node.
  • {:failover, node} - used if the application is distributed and is started on the current node because of a failover on node node, and the application specification key :start_phases is not :undefined.

start_args are the arguments passed to the application in the :mod specification key (e.g., mod: {MyApp, [:my_args]}).

This function should either return {:ok, pid} or {:ok, pid, state} if startup is successful. pid should be the PID of the top supervisor. state can be an arbitrary term, and if omitted will default to []; if the application is later stopped, state is passed to the stop/1 callback (see the documentation for the c:stop/1 callback for more information).

use Application provides no default implementation for the start/2 callback.

Callback implementation for Application.start/2.

Link to this function

start_link(opts \\ [])

Link to this function

subscribe(pid, queue)

Subscribe to a queue - ie. listen to queue for jobs

  • pid - PID for Exq Manager or Enqueuer to handle this
  • queue - Name of queue
  • concurrency - Optional argument specifying max concurrency for queue
Link to this function

subscribe(pid, queue, concurrency)

Link to this function

subscriptions(pid)

List all subscriptions(active queues)

  • pid - PID for Exq Manager or Enqueuer to handle this
Link to this function

unsubscribe(pid, queue)

Unsubscribe from a queue - ie. stop listening to queue for jobs

  • pid - PID for Exq Manager or Enqueuer to handle this
  • queue - Name of queue
Link to this function

unsubscribe_all(pid)

Unsubscribe from all queues - ie. stop listening for jobs

  • pid - PID for Exq Manager or Enqueuer to handle this
Link to this function

worker_job(name \\ nil, pid \\ self())

Get the job metadata

  • name - registered name of Exq. Only necessary if the custom name option is used when starting Exq. Defaults to Exq
  • pid - pid of the worker. Defaults to self().