Модуль расписания очень легкий. Глядя на исходный код , нет поддержки условных или сложных расписаний. Вы можете легко написать задание, которое останавливает вызовы вашей задачи, когда условия не выполняются
Эта простая утилита печатает время, когда секунда находится между 6 и 21 (включительно). Очевидно, вы захотите изменить его на часы вместо секунд.
import schedule
import datetime
import time
def genIPv6TrafficGate():
second = datetime.datetime.now().second
if 6 <= second <= 21:
genIPv6Traffic()
def genIPv6Traffic():
print(datetime.datetime.now().second)
schedule.every(1).seconds.do(genIPv6TrafficGate)
while True:
schedule.run_pending()
time.sleep(1)