Skip to content

Исправления notifications.py и оптимизация database.py#148

Closed
JustYay wants to merge 5 commits intoVladless:mainfrom
JustYay:main
Closed

Исправления notifications.py и оптимизация database.py#148
JustYay wants to merge 5 commits intoVladless:mainfrom
JustYay:main

Conversation

@JustYay
Copy link
Contributor

@JustYay JustYay commented Feb 8, 2025

Блок исправлений по этим файлам, также исправление багов при отправке уведомлений.
Более подробно все расписано в коммитах.

actions-user and others added 5 commits February 8, 2025 03:54
Реиспользование session:
В большинстве функций, где уже передаётся session, убрано повторное открытие/закрытие соединения. При отсутствии session создаётся локальное соединение.

Передача сессии в реферальные функции:
В update_balance при начислении реферальных бонусов вызывается handle_referral_on_balance_update с тем же session, чтобы избежать двойного соединения.

Небольшая корректировка округлений и типов:
При вычислении cashback и при суммировании баланса используется int(...) и/или round(..., 2) там, где это нужно.
Убедились, что передаваемые параметры приводятся к целым и/или плавающим значениям там, где это уместно.
Единый стиль логирования и форматирование:

Использованы единообразные сообщения logger.info, logger.warning, logger.error, а также исправлены некоторые формулировки для большей ясности.
Кратко, что было исправлено:
В send_renewal_notification:

В блоке finally мы обязательно делаем UPDATE keys SET notified = TRUE (или notified_24h = TRUE), даже если отправка сообщения упала с ошибкой.
Это позволяет избежать повторного попадания того же ключа в выборку при следующем проходе (каждый час/полчаса и т.д.), и тем самым исключить спам.
При автопродлении (и ручном продлении, если есть отдельная кнопка):

После успешного продления мы ставим notified = FALSE, notified_24h = FALSE, чтобы заново получать уведомления за 24/10 часов до новой даты окончания. То есть подписка обновляется, и мы считаем её «свежей».
@JustYay JustYay closed this Feb 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants