#python #schedule
#python #Расписание
Вопрос:
Я ищу некоторую помощь в планировании задач в Python. Я использую schedule для запуска скрипта («NQV5_0») в одно и то же время каждый день (0930).
Приведенный ниже код идеально подходит для того, что мне нужно, за исключением случаев, когда это не так. Это будет работать 1-2 дня подряд, но на третий день в 09: 30 ничего не происходит, и мне приходится вручную запускать NQV5_0. Сообщения об ошибке нет, и оператор print продолжает функционировать.
Есть предложения относительно того, что может быть причиной того, что оно не запускается на третий день?
import schedule
import time
import importlib
launch_time = "09:30" # time to launch script
def job(): # imports script
importlib.import_module('NQV5_0')
schedule.every().day.at(launch_time).do(job)
while True: # below is what happens before launch time while waitin& for scheduled job to run
schedule.run_pendin&()
print("r Waitin& to launch at", launch_time, "Time now:", time.ctime(), end="", flush=True)
time.sleep(1)
Комментарии:
1. Возможно ли воспроизвести эту проблему, запланировав ее три или более раз с интервалом всего в 1 минуту или около того? Это было бы быстрее для отладки.
2. Schedule выполняется только до тех пор, пока скрипт действительно запущен. Похоже, что через 2 дня (или любое другое количество времени) ваш скрипт закрывается каким-то процессом. Вероятно, вы захотите использовать что-то вроде планировщика задач (Windows) или crontab (Linux) для обработки чего-то подобного.
3. @Rashid’Leee’Ibrahim согласен с использованием планировщика операционной системы, но в OP указано, что
4. Вы импортируете библиотеку / пакет / модуль. Выполняется ли этот модуль при импорте? Обычно Python выполняет только один импорт, затем просто повторно использует пространство имен при следующем импорте, не перезагружая модуль (и, следовательно, ничего в нем не выполняет).
5. Возможно, вам нужно использовать
reload()
. Оно перезагружает ранее импортированный модуль.