微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

同时使用 scedule 和 Telebot

如何解决同时使用 scedule 和 Telebot

我正在使用使用这些库的程序:

  • 电话机器人
  • 日程

我想像这样安排程序每隔一定时间执行函数

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();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。