exq v0.6.4 Exq.Redis.JobQueue

The JobQueue module is the main abstraction of a job queue on top of Redis.

It provides functionality for:

  • Storing jobs in Redis
  • Fetching the next job(s) to be excuted (and storing a backup of these).
  • Scheduling future jobs in Redis
  • Fetching scheduling jobs and moving them to current job list
  • Retrying or failing a job
  • Re-hydrating jobs from a backup queue

Summary

Functions

backup_queue_key(namespace, host, queue)
dequeue(redis, namespace, host, queues)

Dequeue jobs for available queues

enqueue(redis, namespace, job_json)
enqueue(redis, namespace, queue, job_json)
enqueue(redis, namespace, queue, worker, args)
enqueue_at(redis, namespace, queue, time, worker, args)
enqueue_in(redis, namespace, queue, offset, worker, args)
enqueue_job_at(redis, namespace, job_json, jid, time, scheduled_queue)
fail_job(redis, namespace, job, error)
find_job(jobs, jid)
find_job(redis, namespace, jid, queue)

Find a current job by job id (but do not pop it)

full_key(namespace, key)
queue_key(namespace, queue)
re_enqueue_backup(redis, namespace, host, queue)
remove_job_from_backup(redis, namespace, host, queue, job_json)
retry_or_fail_job(redis, namespace, job, error)
retry_queue_key(namespace)
schedule_queues(namespace)
scheduled_queue_key(namespace)
scheduler_dequeue(redis, namespace)
scheduler_dequeue(redis, namespace, max_score)
scheduler_dequeue_requeue(list, redis, namespace, schedule_queue, count)
time_to_score(time)
to_job_json(queue, worker, args)
to_job_json(queue, worker, args, enqueued_at)