Files
Zilant2025/wsgi_bot.py
T
2026-08-02 14:28:57 +03:00

27 lines
801 B
Python

import fcntl
import os
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()
if __name__ == "__main__":
app.run()