fix: переместить commit в handler после conduct_draw для правильной работы транзакции
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
@@ -358,9 +358,8 @@ class LotteryService:
|
||||
'is_manual': info['is_manual']
|
||||
}
|
||||
|
||||
logger.info(f"conduct_draw: коммитим изменения")
|
||||
await session.commit()
|
||||
logger.info(f"conduct_draw: успешно завершено, победителей: {len(results)}")
|
||||
# НЕ коммитим здесь - это должно сделать вызывающая функция
|
||||
logger.info(f"conduct_draw: изменения подготовлены, победителей: {len(results)}")
|
||||
return results
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -2707,10 +2707,15 @@ async def conduct_lottery_draw(callback: CallbackQuery):
|
||||
logger.info(f"Розыгрыш {lottery_id} проведён, победителей: {len(winners_dict)}")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при проведении розыгрыша {lottery_id}: {e}", exc_info=True)
|
||||
await session.rollback()
|
||||
await callback.answer(f"❌ Ошибка: {e}", show_alert=True)
|
||||
return
|
||||
|
||||
if winners_dict:
|
||||
# Коммитим изменения в БД
|
||||
await session.commit()
|
||||
logger.info(f"Изменения закоммичены для розыгрыша {lottery_id}")
|
||||
|
||||
# Отправляем уведомления победителям
|
||||
from ..utils.notifications import notify_winners_async
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user