通过了解 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()
在响应第一个设备后被冻结,程序如何立即响应第二个设备?