Packages
exq
0.23.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.2
Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language.
Current section
Files
Jump to
Current section
Files
lib/exq/adapters/queue.ex
defmodule Exq.Adapters.Queue do
@moduledoc ~S"""
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
"""
@typedoc "The GenServer name"
@type name :: atom | {:global, term} | {:via, module, term}
@typedoc "The server reference"
@type server :: pid | name | {atom, node}
@callback enqueue(server, String.t(), module(), list(), list()) :: tuple()
@callback enqueue_at(server, String.t(), DateTime.t(), module(), list(), list()) :: tuple()
@callback enqueue_in(server, String.t(), integer(), module(), list(), list()) :: tuple()
@callback enqueue_all(server, list()) :: tuple()
end