Я пытался запланировать определенную задачу с помощью Python различными способами:
- сворачивая мое собственное планирование (с
time.sleep(3600)
и проверять каждый час), см. Ниже - пробуя такие библиотеки, как schedule
, но, кажется, это нелегко: я хотел бы, чтобы задача запускала один раз в пятницу с этими двумя условиями:
- Если это сделано, и я перезагружаю компьютер (или перезапускаю скрипт Python) в пятницу, я не хочу, чтобы задача запускалась второй раз в тот же день
- , есликомпьютер выключен в пятницу, и я запускаю его в субботу, задача должна запуститься (потому что тогда не уже был запущен на этой неделе).
Как это сделать с помощью Python?
Примечание: я хотел бы избежать использования планировщика задач Windows или обертки вокруг него
NB2: скрипт Pythonэто расписание запускает задачу автоматически при запуске Windows.
Вот то, что я пробовал, но это не такочень элегантно и не соответствует требованию 2. Более того, составление моего собственного расписания, вероятно, не оптимально, я ищу что-то «более высокого уровня».
try:
with open('last.run', 'r') as f:
lastrun = int(f.read())
except:
lastrun = -1
while True:
t = datetime.datetime.now()
if t.weekday() == 4 and t.day != lastrun:
result = doit() # do the task
if result:
with open('last.run', 'w') as f:
f.write(str(t.day))
print('sleeping...')
time.sleep(3600)