问题描述
我正在使用使用这些库的程序:
- 电话机器人
- 日程
我想像这样安排程序每隔一定时间执行函数:
from time import sleep
import schedule,telebot
token = 'MY TOKEN'
bot = telebot.TeleBot(token)
def check():
@bot.message_handler(commands=['start'])
def send_ms(message):
bot.send_message(message.chat.id,'Welcome '+str(message.from_user.first_name)+'!!')
mss = 'Welcome to my bot!'
bot.send_message(message.chat.id,mss)
def pr():
print('Hello World')
schedule.every().second.do(pr)
schedule.every().second.do(check)
如果我在此代码下方放置 bot.polling() 而不是此行,它将被卡在 无限循环。
我可以这样做
while True:
schedule.run_pending()
sleep(1)
或者这个
bot.polling()
无论哪种方式,它都会陷入无限循环并忽略 下面的所有代码! 我该如何解决这个问题!
解决方法
你可以试试simple_scheduler。 由于作业并行运行,因此不会被另一个作业阻塞。 以下代码应该可以完成这项工作。
// from this:
measures.map(...).toList();
// to this:
measures(context).map(...).toList();