Verk v1.7.1 Verk
Verk is a job processing system that integrates well with Sidekiq jobs
Each queue will have a pool of workers handled by poolboy
that will process jobs.
Verk has a retry mechanism similar to Sidekiq that keeps retrying the jobs with a reasonable backoff.
It has an API that provides information about the queues
Link to this section Summary
Functions
Add a new queue
with a pool of size size
of workers
Enqueues a Job to the specified queue returning the respective job id
Remove queue
from the list of queues that are being processed
Schedules a Job to the specified queue returning the respective job id
Link to this section Functions
add_queue(queue, size \\ 25)
add_queue(atom(), pos_integer()) :: Supervisor.on_start_child()
add_queue(atom(), pos_integer()) :: Supervisor.on_start_child()
Add a new queue
with a pool of size size
of workers
enqueue(job, redis \\ Verk.Redis)
enqueue(
%Verk.Job{
args: term(),
class: term(),
created_at: term(),
enqueued_at: term(),
error_backtrace: term(),
error_message: term(),
failed_at: term(),
finished_at: term(),
jid: term(),
max_retry_count: term(),
original_json: term(),
queue: term(),
retried_at: term(),
retry_count: term()
},
GenServer.server()
) :: {:ok, binary()} | {:error, term()}
enqueue( %Verk.Job{ args: term(), class: term(), created_at: term(), enqueued_at: term(), error_backtrace: term(), error_message: term(), failed_at: term(), finished_at: term(), jid: term(), max_retry_count: term(), original_json: term(), queue: term(), retried_at: term(), retry_count: term() }, GenServer.server() ) :: {:ok, binary()} | {:error, term()}
Enqueues a Job to the specified queue returning the respective job id
The job must have:
- a valid
queue
- a list of
args
to perform - a module to perform (
class
) - a valid
jid
Optionally a Redix server can be passed which defaults to Verk.Redis
pause_queue(queue)
See Verk.Manager.pause/1
.
remove_queue(queue)
remove_queue(atom()) :: :ok | {:error, :not_found}
remove_queue(atom()) :: :ok | {:error, :not_found}
Remove queue
from the list of queues that are being processed
resume_queue(queue)
schedule(job, datetime, redis \\ Verk.Redis)
schedule(
%Verk.Job{
args: term(),
class: term(),
created_at: term(),
enqueued_at: term(),
error_backtrace: term(),
error_message: term(),
failed_at: term(),
finished_at: term(),
jid: term(),
max_retry_count: term(),
original_json: term(),
queue: term(),
retried_at: term(),
retry_count: term()
},
%DateTime{
calendar: term(),
day: term(),
hour: term(),
microsecond: term(),
minute: term(),
month: term(),
second: term(),
std_offset: term(),
time_zone: term(),
utc_offset: term(),
year: term(),
zone_abbr: term()
},
GenServer.server()
) :: {:ok, binary()} | {:error, term()}
schedule( %Verk.Job{ args: term(), class: term(), created_at: term(), enqueued_at: term(), error_backtrace: term(), error_message: term(), failed_at: term(), finished_at: term(), jid: term(), max_retry_count: term(), original_json: term(), queue: term(), retried_at: term(), retry_count: term() }, %DateTime{ calendar: term(), day: term(), hour: term(), microsecond: term(), minute: term(), month: term(), second: term(), std_offset: term(), time_zone: term(), utc_offset: term(), year: term(), zone_abbr: term() }, GenServer.server() ) :: {:ok, binary()} | {:error, term()}
Schedules a Job to the specified queue returning the respective job id
The job must have:
- a valid
queue
- a list of
args
to perform - a module to perform (
class
) - a valid
jid
Optionally a Redix server can be passed which defaults to Verk.Redis