This commit is contained in:
@@ -90,18 +90,21 @@ async def _process_message(
|
||||
async with message.process(requeue=True):
|
||||
try:
|
||||
payload: dict[str, Any] = json.loads(message.body)
|
||||
action: str = payload.get("action", "")
|
||||
|
||||
if action == "ticket_paid":
|
||||
|
||||
# Если есть ticket_id — сразу в работу. Никаких проверок action.
|
||||
if "ticket_id" in payload:
|
||||
async with session_factory() as session:
|
||||
await _handle_ticket_paid(payload, session)
|
||||
else:
|
||||
log.debug("Unknown action '%s', skipping", action)
|
||||
log.warning("Кривой payload, нет ticket_id: %s", payload)
|
||||
|
||||
except json.JSONDecodeError:
|
||||
log.exception("Failed to decode message body: %r", message.body)
|
||||
# Некорректный JSON — не возвращаем в очередь (requeue=False через reject)
|
||||
await message.reject(requeue=False)
|
||||
except Exception as e:
|
||||
log.exception("Ошибка при обработке сообщения: %s", e)
|
||||
# Исключение заставит aio_pika вернуть задачу в очередь (requeue=True)
|
||||
raise
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
|
||||
Reference in New Issue
Block a user