import json from orm.notification import Notification from services.db import local_session from services.rediscache import redis async def handle_reaction(notification: dict[str, str | int]): """создаеёт новое хранимое уведомление""" with local_session() as session: try: n = Notification(**notification) session.add(n) session.commit() except Exception as e: session.rollback() print(f"[listener.handle_reaction] error: {str(e)}") async def reactions_worker(): async for message in redis.listen("reaction"): message = await message if message: msg_data = message.get("data") if msg_data: msg = json.loads(msg_data) await handle_reaction(msg)