Wrapper to pika for an easier to use RabbitMq interface.
Project description
Snacks
Snacks is a wrapper around pika to provide a convenient interface to publish/subscribe to queues in RabbitMQ.
Example
from pika import BlockingConnection, PlainCredentials
from pika.adapters.blocking_connection import BlockingChannel
from snacks.rabbit import Rabbit
from snacks.rabbit_config import RabbitConfig
# Initial setup of configuration and Rabbit class.
config = RabbitConfig(
host='localhost',
port=5672,
exchange_name='',
credentials=PlainCredentials('snacks', 'snacks')
)
rabbit = Rabbit(config)
# Setup queues to use.
queue = 'snacks'
key = 'snackey'
mq_conn = BlockingConnection(rabbit.config.params)
channel: BlockingChannel = mq_conn.channel()
channel.exchange_declare(
exchange=rabbit.config.exchange_name,
exchange_type='topic',
durable=True
)
channel.queue_declare(queue=queue, durable=True)
channel.queue_bind(
exchange=rabbit.config.exchange_name,
queue=queue,
routing_key=key
)
@rabbit.listener([queue])
def listen(event: str) -> None:
print(f'Received message: {event}')
if __name__ == '__main__':
rabbit.publish('To a python, rabbits and pikas are snacks.', key)
try:
while True:
pass
except KeyboardInterrupt:
print('Exiting...')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
snacks-0.0.5.tar.gz
(4.1 kB
view details)
File details
Details for the file snacks-0.0.5.tar.gz
.
File metadata
- Download URL: snacks-0.0.5.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.4.2 requests/2.24.0 setuptools/51.0.0 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc2618d8f75648f7856de540b29ef616fe3fe6f201d0427ae625354408f61770 |
|
MD5 | 42f19f0d07a3d7084cd2a8168306c043 |
|
BLAKE2b-256 | f6ae991ccc203d4e162de95834ffa9af94265cb8303a06f6bedac51e4f9b43ff |