@AlexMine
Учусь

Почему бот установленный на сервере отправляет долго сообщение?

Столкнулся с проблемой задержки сообщения отправки бота установленном на сервере. Бот написан на библиотеке aiogram для работы с базой данных использую gino, есть следующий кусок кода:
spoiler

@dp.callback_query_handler(lambda c: c.data and c.data.startswith('bet-list'))
async def bet_list_page_handler(callback_query: types.CallbackQuery):
    chat_id = callback_query.message.chat.id
    page_number = int(callback_query.data.split('-')[-1])
    chat = await Chat.query.where(Chat.chat_id == chat_id).gino.first()

    ###
    now = datetime.utcnow()
    ###

    if chat is not None:
        await bot.delete_message(chat_id, callback_query.message.message_id)
        rnd = await Round.query.where(Round.chat_id == chat.id).gino.first()

        if rnd is None:
            msg = '‍♂️ Раунд еще не начался!'
            keyboard = None
        else:
            players = await Player.query.where(Player.p_round == rnd.id).gino.all()
            prev_page, next_page, players = await get_players_page(players, page_number)

            if not players:
                msg = ' Ставок еще нет!'
                keyboard = None
                m = await bot.send_message(chat_id)
                await Message.create(message_id=m.message_id,
                                     chat_id=chat.id, m_type='LIST')
            else:
                msg = ' Список ставок:\n\n'

                for i, player in enumerate(players, start=(10 * page_number) - 9):
                    user = await User.get(player.user)
                    msg += f'{i}. @{user.username} - <b>${player.rate}</b>\n'

                keyboard = await keyboard_list(prev_page, next_page, page_number)

        await send_message(chat_id, chat.id, msg, 'LIST', reply_markup=keyboard)

        ###
        print((datetime.utcnow() - now).seconds, 'seconds')
        ###



Я запускаю на сервере бота, нажимаю на кнопку, которая задействует данную функцию, смотрю в консоли, практически мгновенно появляется надпись 0 seconds(после нажатия). То есть как я понимаю код исполняется быстро, но сам телеграм присылает сообщение с задержкой от 3-10 секунд.
Посмотрел через htop нагрузку на процессор при нажатии кнопки бота в тг, нагрузку показывает в 3-5%, оперативная память 230мб из 900мб задействована.

На локальном компьютере сообщения приходят моментально. В чем может быть проблема? Возможно я не правильно замеряю скорость работы?
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы