Skip to main content

RabbitMQ broker implementation for PATIO

Project description

PyPI - License Wheel Mypy PyPI PyPI Coverage Status tox

PATIO Rabbitmq

PATIO is an acronym for Python Asynchronous Task for AsyncIO.

This package provides RabbitMQ broker implementation.

Example

Task executor

import asyncio
import operator
from functools import reduce

from patio import Registry, ThreadPoolExecutor

from patio_rabbitmq import RabbitMQBroker


rpc = Registry(project="patio-rabbitmq", auto_naming=False)


@rpc("mul")
def mul(*args):
    return reduce(operator.mul, args)


async def main():
    async with ThreadPoolExecutor(rpc, max_workers=16) as executor:
        async with RabbitMQBroker(
            executor, amqp_url="amqp://guest:guest@localhost/",
        ) as broker:
            await broker.join()


if __name__ == "__main__":
    asyncio.run(main())

Task producer

import asyncio

from patio import NullExecutor, Registry

from patio_rabbitmq import RabbitMQBroker


async def main():
    async with NullExecutor(Registry(project="patio-rabbitmq")) as executor:
        async with RabbitMQBroker(
            executor, amqp_url="amqp://guest:guest@localhost/",
        ) as broker:
            print(
                await asyncio.gather(
                    *[
                        broker.call("mul", i, i, timeout=1) for i in range(10)
                    ]
                ),
            )


if __name__ == "__main__":
    asyncio.run(main())

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

patio_rabbitmq-0.1.1.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

patio_rabbitmq-0.1.1-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file patio_rabbitmq-0.1.1.tar.gz.

File metadata

  • Download URL: patio_rabbitmq-0.1.1.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.2 Darwin/22.4.0

File hashes

Hashes for patio_rabbitmq-0.1.1.tar.gz
Algorithm Hash digest
SHA256 61d1c13f3875f0be226923c41ef12f6b5a8725c0294aba7319e4cb1015e75859
MD5 642626cecb060ce82e540e8129e067a4
BLAKE2b-256 af092152cb4bc2d9f2181d0f745211ad2b56e07e599da82e59bb0efc43c140eb

See more details on using hashes here.

File details

Details for the file patio_rabbitmq-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: patio_rabbitmq-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.2 Darwin/22.4.0

File hashes

Hashes for patio_rabbitmq-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0e9172704adb921fe3167d6fe3fb46f00af59637e38d66c95deca033a7b2fa34
MD5 7729ec2c8c97bea47c4271a8599f6f76
BLAKE2b-256 49076c77b0492556eb6f63b3f72adee5279d69d43f8226b64262952dbc3d7c10

See more details on using hashes here.

Supported by

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