Поделитесь хорошо работающим примером.
В вариант с фласком мне непрерывно летят какие то непонятные обновления, на тестового бота, и цпу сильно нагружен, но при это работает более менее нормально, непонятно что происходит и почему так
https://github.com/eternnoir/pyTelegramBotAPI/blob...
Вариант с fastapi работает на первый взгляд нормально но если присмотреться то у него явные проблемы, обновления часто залипают, ошибок нет, выглядит так будто запросы просто приходят с большим опозданием, ип адрес с которого приходят обновления отвечает на пинги с задержкой 2мс, он где то совсем близко. В реальном боте callback кнопки сильно лагают, уведомления вообще не отправляются (те которые о том что бот что то делает).
https://github.com/eternnoir/pyTelegramBotAPI/blob...
Это HTTP 1.1 так и должно быть?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This is a simple echo bot using decorators and webhook with fastapi
# It echoes any incoming text messages and does not use the polling method.
import logging
import time
import telebot
import cfg
API_TOKEN = cfg.test_token
logger = telebot.logger
telebot.logger.setLevel(logging.INFO)
bot = telebot.TeleBot(API_TOKEN)
@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
"""
Handle '/start' and '/help'
"""
bot.reply_to(message,
("Hi there, I am EchoBot.\n"
"I am here to echo your kind words back to you."))
@bot.message_handler(func=lambda message: True, content_types=['text'])
def echo_message(message):
"""
Handle all other messages
"""
bot.reply_to(message, message.text)
# Remove webhook, it fails sometimes the set if there is a previous webhook
#bot.remove_webhook()
#time.sleep(1)
if hasattr(cfg, 'WEBHOOK_DOMAIN') and hasattr(cfg, 'WEBHOOK_PORT') and hasattr(cfg, 'WEBHOOK_SSL_CERT') and hasattr(cfg, 'WEBHOOK_SSL_PRIV'):
bot.run_webhooks(
listen=cfg.WEBHOOK_DOMAIN,
port = cfg.WEBHOOK_PORT,
certificate=cfg.WEBHOOK_SSL_CERT,
certificate_key=cfg.WEBHOOK_SSL_PRIV
)
else:
bot.polling(timeout=90, long_polling_timeout=90)