1

通过了解 async/await 的基础知识,我了解到这time.sleep()是一个阻塞函数,它会冻结执行。message_handler在创建电报机器人时,我尝试以这种简单的方式检查它。

import telebot
from time import sleep

token = '...'
bot = telebot.TeleBot(token)

@bot.message_handler(commands=['test'])
def test(message):
    bot.send_message(message.chat.id, 'Hello')
    sleep(5)
    bot.send_message(message.chat.id, 'World')

if __name__ == '__main__':
bot.infinity_polling()

一个 /test 命令是从两台设备以很小的间隔 (<5s) 发送的。我希望程序向第一个设备发送消息“Hello”,冻结 5 秒钟然后发送“World”,然后才对第二个设备执行相同的操作。但相反,两个设备同时处理。

在这种情况下,我无法理解该过程。如果程序time.sleep()在响应第一个设备后被冻结,程序如何立即响应第二个设备?

4

0 回答 0