2017-12-30 34 views
0

x와 y 사이의 5 초마다 print datetime을 실행하려고합니다.서로 다른 두 시간 사이에 작업 스케줄러 실행

다음 코드를 사용하면 시작 시간을 올바르게 완료 할 수 있으며 작업이 완벽하게 실행됩니다. 그러나 나는 시간 y에 그 일을 멈출 수 없다.

import schedule 
import time 
from datetime import datetime 

schedule.clear() 

def job(): 
    print(datetime.now()) 

schedule.every(5).seconds.do(job) 

while 1: 
    if datetime.now()>=datetime(2017,12,31,1,49) : 
     schedule.run_pending() 
     time.sleep(1) 

Documentation 내가

내가 매일 아침 9시에 시작하여 오후 3시

+0

한 번에 모든 작업을 취소해도 괜찮습니까? – hansaplast

+0

@hansaplast 예, 문제가 하나뿐이므로 문제가 없습니다. –

답변

1

에서 정지 뭔가를 찾고 있다고 할 수 없었던 여러 작업을 취소하는 예를 제공하지만, 이전에 생성 된 작업의 참조를 취하는 schedule.cancel_job()이 있습니다. 또는 모든 작업을 삭제하는 간단한 schedule.clear()이 있습니다.

import schedule 
import time 
from datetime import datetime, timedelta 

schedule.clear() 

def job(): 
    print(datetime.now()) 

j = schedule.every(1).seconds.do(job) 

start = datetime.now() 
end = start + timedelta(seconds=5) 

while True: 
    schedule.run_pending() 
    time.sleep(1) 
    if datetime.now() > end: 
     print('cancelling job') 
     schedule.cancel_job(j) 
     break 

print(schedule.jobs) # shows empty list, as they are no open jobs 
time.sleep(5) # just to double check that it does no longer trigger