[ZILANT] убрать зацикливание запроса на вебхук
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-08-02 15:05:14 +03:00
parent 064d22cfd8
commit 8c3a62d021
4 changed files with 68 additions and 46 deletions
+6 -22
View File
@@ -1,26 +1,10 @@
import fcntl
import os
from tg_mainbot import app
from tg_mainbot import app, setup_webhook
def _setup_webhook_once():
"""
Регистрируем webhook один раз при старте gunicorn.
Без этого (__main__ не вызывается) Telegram не шлёт апдейты через relay —
ссылка «Подписка» (/start) молчит.
"""
lock_path = os.path.join(os.getenv("TMPDIR", "/tmp"), "zilant_webhook_setup.lock")
with open(lock_path, "w") as lock_file:
try:
fcntl.flock(lock_file.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
except BlockingIOError:
# Другой воркер уже ставит webhook
return
setup_webhook()
_setup_webhook_once()
# Регистрация webhook — в gunicorn_bot.conf.py (on_starting), один раз в master.
# Здесь только WSGI-приложение для воркеров.
if __name__ == "__main__":
from tg_mainbot import setup_webhook
setup_webhook()
app.run()