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.12.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.12-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aio_rabbitmq_utils-1.0.12.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.12.tar.gz
Algorithm Hash digest
SHA256 0cfe407f6523824264bfd16ebe349f9cb9d1a14a5b12df12d07c32f98e853cb2
MD5 10ff0053d2332668773d3109c2b1e06a
BLAKE2b-256 a07acd0e8c9560192cd5d26a3b1a6c1f6d5fdca48f95331b9aa748b0c9075462

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aio_rabbitmq_utils-1.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 d3f2482d4487685228e0825e37485fea358573f687ff32e79dd6c2fe4a76411c
MD5 b66fde6518debad5d99905b02f862f41
BLAKE2b-256 891dd76db752cc72802a90fa394c5d45590e740ca738ab74e23f738ddde67837

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