27 lines
801 B
Python
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()
|