Python RabbitMQ client for MassTransit Communication
Project description
Description
Python library to exchange messages between MassTransit RabbitMQ Client and Python application. Implemented with pika RabbitMQ client.
Installation
Run the following to install:
pip install masstransitpython-byQ96
Usage
Simple receiver/sender model was implemented to show basic package usage.
Configuration
Default client configuration can be implemented as follows:
from pika import PlainCredentials
from masstransitpython import RabbitMQConfiguration
RABBITMQ_USERNAME = 'guest'
RABBITMQ_PASSWORD = 'guest'
RABBITMQ_HOST = 'localhost'
RABBITMQ_PORT = 5672
RABBITMQ_VIRTUAL_HOST = '/'
credentials = PlainCredentials(RABBITMQ_USERNAME, RABBITMQ_PASSWORD)
conf = RabbitMQConfiguration(credentials,
queue='PythonServiceQueue',
host=RABBITMQ_HOST,
port=RABBITMQ_PORT,
virtual_host=RABBITMQ_VIRTUAL_HOST)
Receiver
Receiver must have an appropriately defined exchange name: [SOLUTION_NAME:DIRECTORY_NAME:MESSAGE_NAME]
from masstransitpython import RabbitMQReceiver
from json import loads
def handler(ch, method, properties, body):
msg = loads(body.decode())
print("Received message: %s" % msg["message"])
# define receiver
receiver = RabbitMQReceiver(conf, 'MassTransitService.Messages:SampleMessage')
receiver.add_on_message_callback(handler)
receiver.start_consuming()
Sender
from masstransitpython import RabbitMQSender
from json import loads
def send_message(body):
'''
:param body: Message received from MassTransit client
:return: None
'''
with RabbitMQSender(conf) as sender:
sender.set_exchange('MassTransitService.Messages:SampleMessage')
encoded_msg = MessageEncoder().encode(SampleMessage("Hello World!"))
response = sender.create_masstransit_response(loads(encoded_msg), body)
sender.publish(message=response)
Message
from json import JSONEncoder
class SampleMessage:
def __init__(self, name):
self.name = name
class MessageEncoder(JSONEncoder):
def default(self, o):
return o.__dict__
Other
Full example avaliable in https://github.com/byQ96/MassTransitPython/example
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for masstransitpython_byQ96-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abe0614579b3ff008ee38eca82200fa3e736c4b8257c5a1954cdfca0595a9a95 |
|
MD5 | a2d54be4ac518a597077ecead0b320b6 |
|
BLAKE2b-256 | 6a10453ebf61febc164939795cb13c4d9aaf2fec53327c3f9c8023244a28e8d4 |