Packages
exq
0.7.1
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/api.ex
defmodule Exq.Api do
@moduledoc """
Interface for retrieving Exq stats.
Pid is currently Exq.Api process
"""
def start_link(opts \\ []) do
Exq.start_link(Keyword.put(opts, :mode, :api))
end
@doc """
List of queues with jobs (empty queues are deleted)
Expected args:
* `pid` - Exq.Api process
Returns:
* `{:ok, queues}` - list of queue
"""
def queues(pid) do
GenServer.call(pid, :queues)
end
@doc """
Clear / Remove queue
Expected args:
* `pid` - Exq.Api process
* `queue` - Queue name
Returns:
* `{:ok, queues}` - list of queue
"""
def remove_queue(pid, queue) do
GenServer.call(pid, {:remove_queue, queue})
end
@doc """
Number of busy workers
Expected args:
* `pid` - Exq.Api process
Returns:
* `{:ok, num_busy}` - number of busy workers
"""
def busy(pid) do
GenServer.call(pid, :busy)
end
@doc """
Number of processes
Expected args:
* `pid` - Exq.Api process
* `key` - Key for stat
* `queue` - Queue name
Returns:
* `{:ok, stat}` stat for key
"""
def processes(pid) do
GenServer.call(pid, :processes)
end
def clear_processes(pid) do
GenServer.call(pid, :clear_processes)
end
@doc """
List jobs enqueued
Expected args:
* `pid` - Exq.Api process
Returns:
* `{:ok, [{queue, [jobs]}, {queue, [jobs]}]}`
"""
def jobs(pid) do
GenServer.call(pid, :jobs)
end
@doc """
List jobs enqueued
Expected args:
* `pid` - Exq.Api process
* `queue` - Queue name
Returns:
* `{:ok, [jobs]}`
"""
def jobs(pid, queue) do
GenServer.call(pid, {:jobs, queue})
end
def retries(pid) do
GenServer.call(pid, :retries)
end
def scheduled(pid) do
GenServer.call(pid, {:jobs, :scheduled})
end
def scheduled_with_scores(pid) do
GenServer.call(pid, {:jobs, :scheduled_with_scores})
end
def find_job(pid, queue, jid) do
GenServer.call(pid, {:find_job, queue, jid})
end
def remove_job(pid, queue, jid) do
GenServer.call(pid, {:remove_job, queue, jid})
end
def queue_size(pid) do
GenServer.call(pid, :queue_size)
end
def queue_size(pid, queue) do
GenServer.call(pid, {:queue_size, queue})
end
def failed(pid) do
GenServer.call(pid, :failed)
end
def find_failed(pid, jid) do
GenServer.call(pid, {:find_failed, jid})
end
def remove_failed(pid, jid) do
GenServer.call(pid, {:remove_failed, jid})
end
def clear_failed(pid) do
GenServer.call(pid, :clear_failed)
end
def failed_size(pid) do
GenServer.call(pid, :failed_size)
end
def find_retry(pid, jid) do
GenServer.call(pid, {:find_retry, jid})
end
def remove_retry(pid, jid) do
GenServer.call(pid, {:remove_retry, jid})
end
def clear_retries(pid) do
GenServer.call(pid, :clear_retries)
end
def retry_size(pid) do
GenServer.call(pid, :retry_size)
end
def find_scheduled(pid, jid) do
GenServer.call(pid, {:find_scheduled, jid})
end
def remove_scheduled(pid, jid) do
GenServer.call(pid, {:remove_scheduled, jid})
end
def clear_scheduled(pid) do
GenServer.call(pid, :clear_scheduled)
end
def scheduled_size(pid) do
GenServer.call(pid, :scheduled_size)
end
@doc """
Return stat for given key
Examples of keys are `processed`, `failed`
Expected args:
* `pid` - Exq.Api process
* `key` - Key for stat
* `queue` - Queue name
Returns:
* `{:ok, stat}` stat for key
"""
def stats(pid, key) do
GenServer.call(pid, {:stats, key})
end
def stats(pid, key, date) do
GenServer.call(pid, {:stats, key, date})
end
def realtime_stats(pid) do
GenServer.call(pid, :realtime_stats)
end
end