[ZILANT] настройка запуска респондер-бота через релей
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
+23
-1
@@ -1,4 +1,26 @@
|
||||
from tg_mainbot import app # Импортируйте ваше приложение
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user