Skip to main content

A package for async communication with RabbitMQ

Project description

RabbitMQUtils

Example for reader

Consumer

from aio_rabbitmq_utils import RabbitMQConsumeInputDeviceManager, RabbitMQInputConsumeDevice


async def example():
    input_device_manager = RabbitMQConsumeInputDeviceManager(
        hosts=["the", "rabbit", "hosts", ", will", "connect", "to", "only", "one"],
        user="user",
        password="password",
        vhost="/",
        prefetch_count=10,
    )
    await input_device_manager.connect()
    input_device: RabbitMQInputConsumeDevice = await input_device_manager.get_device("some_queue_name")
    await input_device.connect()
    data, headers, transaction = await input_device.read()
    
    # do something
    
    # To ack the message (remove from queue)
    await transaction.commit()
    # To nack the message (re-queue the message)
    await transaction.rollback()

Basic Get

from aio_rabbitmq_utils import RabbitMQMultiConnectionBasicGetInputDeviceManager, RabbitMQInputBasicGetDevice


async def example():
    input_device_manager = RabbitMQMultiConnectionBasicGetInputDeviceManager(
        hosts=["the", "rabbit", "hosts", ", will", "connect", "to", "only", "one"],
        user="user",
        password="password",
        vhost="/",
        max_connections=10,
        max_channels=50,
    )
    await input_device_manager.connect()
    input_device: RabbitMQInputBasicGetDevice = await input_device_manager.get_device("some_queue_name")
    await input_device.connect()
    data, headers, transaction = await input_device.read()
    
    # do something
    
    # To ack the message (remove from queue)
    await transaction.commit()
    # To nack the message (re-queue the message)
    await transaction.rollback()

Example for writer

from io import BytesIO
from aio_rabbitmq_utils import RabbitMQOutputDeviceManager, RabbitMQOutputDevice


async def example():
    output_device_manager = RabbitMQOutputDeviceManager(
        hosts=["the", "rabbit", "hosts", ", will", "connect", "to", "only", "one"],
        user="user",
        password="password",
        vhost="/",
        exchange_name="",
    )
    await output_device_manager.connect()
    output_device: RabbitMQOutputDevice = await output_device_manager.get_device("some_routing_key")
    await output_device.connect()
    success = await output_device.send(
        BytesIO(b"Hi"),
        {"some": "headers"},
    )
    if success:
        print("Message sent")
    else:
        raise Exception("Failed to send the message")

Project details


Download files

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

Source Distribution

aio_rabbitmq_utils-1.0.11.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

aio_rabbitmq_utils-1.0.11-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file aio_rabbitmq_utils-1.0.11.tar.gz.

File metadata

  • Download URL: aio_rabbitmq_utils-1.0.11.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for aio_rabbitmq_utils-1.0.11.tar.gz
Algorithm Hash digest
SHA256 f65df4b165f7af3972bacc37347561c2f7d684de0585b4d7c1441613de2496fe
MD5 de158a321572f9f989f8dae01b43826c
BLAKE2b-256 1d105ef43c71bb8847d8682e20d5de95d2c804ce04dd8cf6457a57eabe05687b

See more details on using hashes here.

File details

Details for the file aio_rabbitmq_utils-1.0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for aio_rabbitmq_utils-1.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 9f7c98a433e36b651d53ea5a275069c2ac8665f9188a40412a39fbe30a69bedd
MD5 f26495e7026a099678a33556116ed06a
BLAKE2b-256 1ef4e9fae51dfcf84817a6232b8083eafb54903274bc7bb900977ddc9461de42

See more details on using hashes here.

Supported by

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