schedule.run_pending() Блокирует работу других функций
Пытаюсь сделать бота, который реагирует на команды, такие как start и start_2, а так же с определенной периодичностью отправляет сообщение. Проблема заключается в том, что если я использую schedule.run_pending(), бот не может выполнить никакие функции кроме run_timer().
Пытался решить проблему при помощи Thread для того, что бы этот цикл выполнялся отдельным потоком и не блокировал работу остальных функций, не помогло, бот просто не реагирует на команды и выполняет только run_timer().
Как можно реализовать то, что мне требуется?
import telebot
import config
import schedule
import time
from threading import Thread
bot = telebot.TeleBot(config.TOKEN)
chat_id = ...
@bot.message_handler(commands=['start'])
def welcome(message):
bot.send_message(chat_id, text='test_1')
@bot.message_handler(commands=['start_2'])
def message_handler_2(message):
bot.send_message(chat_id, text='test_2')
@bot.message_handler(commands=['timer'])
def timer():
bot.send_message(chat_id, 'Таймер сработал')
def run_timer():
schedule.every(10).seconds.do(timer)
while True:
schedule.run_pending()
time.sleep(1)
thread = Thread(target=run_timer)
thread.start()