@RINAMI
Занимаюсь монтажом и дизайном. PSD,AEX,VEG.

Вынес Schedule во второй поток, но почему не работает?

Вообщем, есть функции "работы":
import threading
from threading import Thread
import time
import schedule
from datetime import datetime
def run_schedule():  # Kerindaily
    schedule.every().day.at('10:00').do(everyday)
    schedule.every().day.at('10:00').do(everydayphoto)
    schedule.every().day.at('21:14').do(everynight)
    schedule.every().day.at('21:14').do(everydayphoto)
    while True:
        schedule.run_pending()
        time.sleep(1)
        pass

И собственно поток:
def thread2():  # Поток 2
    thr2 = Thread(target=run_schedule)
    thr2.start()
    pass

В конце кода добавил:
if __name__ == '__main__':
    thread2()

Функции отправляют в чат сообщение и фото, но schedule не работает, никаких ошибок, ничего, а еще почему-то время застывает на одном месте
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
khemraev
@khemraev
Python
Не обязательно всю функцию выносить во второй поток. Надо лишь цикл вынести и сможешь везде использовать schedule .

import threading
from threading import Thread
import time
import schedule
from datetime import datetime

def everyday():
    pass
def everydayphoto():
    pass
def everynight():
    pass
def everydayphoto():
    pass

schedule.every().day.at('10:00').do(everyday)
schedule.every().day.at('10:00').do(everydayphoto)
schedule.every().day.at('21:14').do(everynight)
schedule.every().day.at('21:14').do(everydayphoto)



def sched(num):
    while True:
        schedule.run_pending()
        time.sleep(num)

thr = Thread(target = sched, daemon=True, args = (1,))
thr.start()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы