На сервере запущен телеграмм бот, который работает не через пулинг, а принимает вебхуки. Сам бот довольно сложный, он работает и с базой данных и с api wordpress. Когда я отправляю в бот сообщение, то бот может на него не отреагировать, если отправить ещё одно сообщение, то он сразу реагирует на предыдущее сообщение. Когда бот запущен через пулинг, то такой проблемы не наблюдается, но мне нужно запускать через вебхуки, так-как на сервере планируется использовать двух ботов сразу. Схема настройки следующая Nginx - gunicorn - flask(для обработки хуков от телеги) - pytelegrambotapi
Фрагмент кода бота:
#импорты нужных библиотек
bot = TeleBot(token_bot_driver, parse_mode='HTML')
app = Flask(__name__)
@bot.message_handler(commands=['start'])
def start_bot(message):
bot.send_message(message.chat.id, 'Hi')
#остальные функции бота
@app.route(f'/8xhPzWJxpnCIkkeu8Oso', methods=['POST'])
def webhook():
print(request.get_data())
bot.process_new_updates([types.Update.de_json(request.get_data().decode("utf-8"))])
return "ok", 200
if __name__ == '__main__':
bot.polling(none_stop=True)
точка входа wsgi
from bot_driver import app
if __name__ == "__main__":
app.run()
Бот запускается следующей командой:
gunicorn --workers 4 --bind unix:./sockets/driver_bot.sock -m 007 wsgi:app
На сервере используется ssl сертификат letsencrypt. Настройки nginx:
location = /8xhPzWJxpnCIkkeu8Oso {
include proxy_params;
proxy_pass http://unix:/путь/до/файла/соккета/sockets/driver_bot.sock;
}
Пожалуйста подскажите в чем проблема. В логах приложения ни каких ошибок нету.