Skip to main content

🦬 BuffaloMQ

A lightweight, production-grade Redis job queue for Python with a built-in real-time Web Dashboard.

BuffaloMQ provides a simple, reliable, and dependency-light alternative to heavy task queues like Celery. It leverages Redis and atomic Lua scripts for crash resilience, delayed scheduling, visibility timeouts, and DLQ management — complete with a zero-config web dashboard CLI.


🛠 Tech Stack

  • Core & Broker: Python 3.9+ & Redis (via atomic Lua scripts)
  • Dashboard Server: FastAPI & Uvicorn
  • Dashboard Frontend: React 18, TypeScript, Vite

✨ Features

  • ⚡ Lightweight & Fast: Pure Python API powered by atomic Redis Lua operations.
  • 🖥 Zero-Config Web Dashboard: Launch a real-time monitoring UI with a single CLI command (buffalomq dashboard).
  • 🔄 Job Retries & Backoff: Configurable retry limits and exponential backoff.
  • ⏱ Delayed Jobs: Schedule tasks to run after a specific delay.
  • 🔒 Crash Recovery: Visibility timeouts & heartbeat threads prevent lost jobs if a worker crashes.
  • ⏸ Queue Controls & DLQ Re-drive: Pause/resume queues and re-drive failed jobs straight from the dashboard or API.

📦 Installation

pip install buffalomq

🚀 Quickstart

1. Submit Jobs (Producer)

import redis
from buffalomq import Queue

r = redis.Redis(host='localhost', port=6379, db=0)
queue = Queue("email-notifications", r)

# Enqueue immediate job
queue.add({"to": "user@example.com", "subject": "Welcome!"})

# Enqueue delayed job (runs after 30s) with 3 max retries
queue.add({"to": "user@example.com", "subject": "Reminder"}, options={"delay": 30, "max_attempts": 3})

2. Process Jobs (Worker)

import redis
from buffalomq import Worker

def process_email(job_data):
    print(f"Sending email to: {job_data['to']}")

r = redis.Redis(host='localhost', port=6379, db=0)
worker = Worker("email-notifications", r, process_email)

# Start listening for jobs
worker.run()

3. Launch Web Dashboard

buffalomq dashboard --redis redis://localhost:6379/0

Automatically opens http://127.0.0.1:8000 in your browser to monitor queues, inspect payloads, pause workers, and re-drive failed jobs.

Metadata

Release files for buffalomq 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for buffalomq 0.1.3
File Size Uploaded
buffalomq-0.1.3.tar.gz 87.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for buffalomq 0.1.3
File Interpreter ABI Platform
buffalomq-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 176.6 kB

Release files / buffalomq-0.1.3.tar.gz

Download URL buffalomq-0.1.3.tar.gz
Size 87.6 kB
Tags Source
SHA-256 checksum
How to use checksums
27fdc6f10fc8cb963de088f592ed93a48114c113a0dfef9c3c22c150e3b10bb8
BLAKE2b-256 checksum
How to use checksums
e3f3923911d8b13ca8161c2b871b5cf1bb7746525b84f390b1f0a642b0d49eac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / buffalomq-0.1.3-py3-none-any.whl

Download URL buffalomq-0.1.3-py3-none-any.whl
Size 89.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9db549704b34afd9a811dd24f750f7cd8122e0292d00418e3792443836501403
BLAKE2b-256 checksum
How to use checksums
744716128e51d31cb3ce67fec9a1d9c91ddbba6dde02aff5ea2d57307dccb3b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page