freeleaps-service-hub/app/notification/webapi/providers/message_queue.py

24 lines
771 B
Python

import asyncio
def register(app):
@app.on_event("startup")
async def start_consumers():
loop = asyncio.get_running_loop()
await loop.create_task(
app.in_app_mq_client.subscribe(max_retries=5, event_loop=loop)
)
await loop.create_task(
app.email_mq_client.subscribe(max_retries=5, event_loop=loop)
)
await loop.create_task(
app.sms_mq_client.subscribe(max_retries=5, event_loop=loop)
)
@app.on_event("shutdown")
async def stop_consumers():
loop = asyncio.get_running_loop()
await loop.create_task(app.in_app_mq_client.close())
await loop.create_task(app.email_mq_client.close())
await loop.create_task(app.sms_mq_client.close())