Skip to main content

Rabbit Manager

Rabbit Manager is a simple, Python-based utility for managing RabbitMQ message queues. It provides an easy-to-use interface for sending, receiving, and processing messages from RabbitMQ queues, with built-in support for automatic reconnections and error handling.

Key Features:

  • Send messages to RabbitMQ queues.
  • Receive messages from queues with automatic acknowledgement.
  • Automatically reconnect on connection loss.
  • Easily handle multiple messages and batch operations.
  • Supports queue size inspection.
  • Iterable interface for message consumption.

This tool is ideal for developers looking to integrate RabbitMQ into their Python applications with minimal overhead.

Requirements

  • Python >= 3.10
  • Pika (installed via project dependencies)

Install from PyPI (package name: rabbit-manager):

uv add rabbit-manager

or

pip install rabbit-manager

Install for local development with uv (recommended):

uv sync --dev

Alternatively, using pip for editable dev install:

pip install -e ".[dev]"

Quick Start (RabbitManager)

from rabbit_manager import RabbitManager

# Create a manager for a RabbitMQ queue
manager = RabbitManager(
    "my_queue",              # queue_name (positional argument, required)
    username="guest",        # keyword-only (required)
    password="guest",        # keyword-only (required)
    host="localhost",        # optional, defaults to "localhost"
    port=5672,               # optional, defaults to 5672
    queue_durable=True,      # optional, defaults to True
    message_ttl_minutes=10,  # optional, defaults to 0
    confirm_delivery=True,   # optional, defaults to True
    max_priority=10,         # optional, defaults to 0
)

# Use as a context manager to auto-open/close connection
with manager as q:
    # Add a message
    delivered = q.add("hello world")
    print("Delivered:", delivered)

    # Add a message with priority (requires max_priority > 0)
    delivered_priority = q.add("priority message", priority=5)
    print("Delivered with priority:", delivered_priority)

    # Check queue size
    print("Queue size:", q.size())

    # Get one message (non-blocking)
    msg = q.get()
    print("Got:", msg)

    # Block and wait for a message (with optional timeout)
    msg2 = q.consume(timeout=5)
    print("Consumed:", msg2)

# Manual open/close usage
manager.open()
manager.add("another message")
print("Size:", manager.size())
print("Get:", manager.get())
manager.close()

Notes:

  • The example assumes a local RabbitMQ instance on localhost:5672 with guest/guest credentials.
  • When confirm_delivery=True, publishing raises on delivery issues (e.g., unroutable or NACK).
  • message_ttl_minutes>0 sets per-queue message TTL.
  • Message priority works only when max_priority>0, and can be set per message via add(..., priority=...).

Testing

Before running tests, activate the virtual environment:

source .venv/bin/activate

Run the test suite:

pytest test.py -v

See more options in TEST_README.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rabbit_manager-0.2.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rabbit_manager-0.2.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file rabbit_manager-0.2.0.tar.gz.

File metadata

  • Download URL: rabbit_manager-0.2.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for rabbit_manager-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7b1e1c2b6738479e2a3761398453e826f9ef3a3204828161558f963ad3a67557
MD5 3e987f3fd8e223f9a1419f975d3c0d66
BLAKE2b-256 e11a05487bd21520f1373271bf333182153dde438a93eeff04b097bb5e2dbc10

See more details on using hashes here.

File details

Details for the file rabbit_manager-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: rabbit_manager-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for rabbit_manager-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b79b32d15f2d2412940bccf14f57dad5fedb548d85cac5ec802ee33fec58c5ee
MD5 8f07c8d833dde7b0402a0ffc2e11d670
BLAKE2b-256 a3bc6f888df89004df95f6ba7243f64acf6f1a250b75bfaac218a122f469f5ca

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.3

2 files

0.1.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page