Часть кода, которая должна постоянно работать
Я работаю над телеграм-ботом, и мне нужно что бы шла постоянная проверка времени: если настаёт указанное время, то бот отправляет ссылку. Пытался сделать через модуль os.path, но почему-то не корректно работает. Возможно у Вас есть альтернативный вариант.
Ответы (1 шт):
Используйте threading и schedule
import telebot
import threading
import schedule
...
def job():
print('Привет, это задача job')
def runBot():
bot.polling()
def mainJob():
schedule.every().day.do(job)
while True:
schedule.run_pending()
time.sleep(1)
if __name__ == "__main__":
t1 = threading.Thread(target=runBot)
t2 = threading.Thread(target=mainJob)
# starting thread 1
t1.start()
# starting thread 2
t2.start()
Команда schedule.every().day.do(job) будет запускать функцию job каждый день. Вместо day можете подставить свои данные.
Если хотите, чтобы оно работало раз в день в какое-то время, то прописывайте schedule.every().day.at("14:00").do(job).
С минутами и часами тоже самое schedule.every().hour.at(":30").do(job) Тогда функция job будет срабатывать каждый раз в 30 минут, в 15:30, 16:30, 17:30 и т.д.