Project

zizq

0.0
The project is in a healthy, maintained state
This is the official Ruby client for the Zizq job queue server. Zizq is a simple, single binary, zero dependency, language agnostic job queue.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

~> 0.82
~> 1.7
 Project Readme

Zizq — Official Ruby Client

Zizq is a simple, zero dependency, single binary job queue system that is both fast and durable. It is designed to work in any stack through a simple HTTP API.

This is the official Zizq client library for Ruby.

CI

Features

  • Multi-thread and/or multi-fiber concurrent worker (via async)
  • Zizq::Job based job classes, Active Job support, or completely custom
  • Enqueue and process jobs from one language to another
  • Arbitrary named queues
  • Granular job priorities
  • Scheduled jobs
  • Configurable backoff policies
  • Configurable job retention policies
  • Recurring jobs (cron)
  • Job introspection and management APIs, with support for jq query filters
  • Unique jobs

Installation

Note

If you have not yet installed the Zizq server, follow the Getting Started guide first.

Add it to your application's Gemfile.

gem 'zizq', '~> 0.3.1'

Or install it manually:

$ gem install zizq -v 0.3.1

Example

Tip

The client is very flexible and supports being used in a range of different ways. Read the full documentation on the website for more details.

Mixin-based job class.

class SendEmailJob
  include Zizq::Job

  zizq_queue 'emails'
  zizq_priority 100

  def perform(user_id, template:)
    # your application logic here
  end
end

Enqueueing a job.

Zizq.enqueue(SendEmailJob, 42, template: 'welcome')

Note

Jobs can also be enqueued and processed without Zizq::Job, which is designed to support interoperability with any programming language.

Using the included zizq-worker executable.

$ zizq-worker --threads 5 --fibers 2 app.rb
I, [2026-03-24T15:25:57.738131 #1331422]  INFO -- : Zizq worker starting: 5 threads, 2 fibers, prefetch=20
I, [2026-03-24T15:25:57.738222 #1331422]  INFO -- : Queues: (all)
I, [2026-03-24T15:25:57.739861 #1331422]  INFO -- : Worker 0:0 started
I, [2026-03-24T15:25:57.739962 #1331422]  INFO -- : Worker 0:1 started
I, [2026-03-24T15:25:57.740131 #1331422]  INFO -- : Worker 1:0 started
I, [2026-03-24T15:25:57.740211 #1331422]  INFO -- : Worker 1:1 started
I, [2026-03-24T15:25:57.740352 #1331422]  INFO -- : Worker 2:0 started
I, [2026-03-24T15:25:57.740408 #1331422]  INFO -- : Worker 2:1 started
I, [2026-03-24T15:25:57.740532 #1331422]  INFO -- : Worker 3:0 started
I, [2026-03-24T15:25:57.740590 #1331422]  INFO -- : Worker 3:1 started
I, [2026-03-24T15:25:57.740722 #1331422]  INFO -- : Worker 4:0 started
I, [2026-03-24T15:25:57.740776 #1331422]  INFO -- : Worker 4:1 started
I, [2026-03-24T15:25:57.740844 #1331422]  INFO -- : Zizq producer thread started
I, [2026-03-24T15:25:57.740878 #1331422]  INFO -- : Connecting to http://localhost:7890...
I, [2026-03-24T15:25:57.792173 #1331422]  INFO -- : Connected. Listening for jobs.

Note

Workers can also be created directly in code. There is no requirement to use zizq-worker.

Resources

Support & Feedback

If you need help using Zizq, create an issue on the zizq-ruby repo. Feedback is very welcome.