Files
notification/rabbitmq.py

32 lines
815 B
Python

# rabbitmq.py
from kombu import Connection, Exchange, Producer
rabbit_url = 'amqp://guest:guest@rabbitmq:5672/'
_connection = None
_channel = None
_exchange = Exchange('notification', type='direct')
_producer = None
def get_connection():
global _connection
if _connection is None or not _connection.connected:
_connection = Connection(rabbit_url)
_connection.ensure_connection(max_retries=3)
return _connection
def get_producer():
global _producer, _channel
if _producer is None:
conn = get_connection()
_channel = conn.channel()
_producer = Producer(_channel, exchange=_exchange, routing_key="notification")
return _producer
def send_notification(message: dict):
producer = get_producer()
producer.publish(message, serializer='json')