나는 미래의 사건들의 대기열이 시간 순서대로 나열된 스케줄링 기능과 스케줄러를 가지고있다. 저는 UNIX 타임 스탬프와 일반 time.time()
을 사용하고 있습니다. 스케줄러의 한 조각이 거의 비슷하다 :일정한 시간 동안 단조로운 시간으로 일정 잡기
eventtime = time.time() + delay_seconds
또는 기반으로 다음 eventtime
이 계산 중 지연을 기반으로 할 수
# select the nearest event (eventfunc at eventime)
sleeptime = eventtime - time.time()
# if the sleep gets interrupted,
# the whole block will be restarted
interruptible_sleep(sleeptime)
eventfunc()
eventtime = datetime(year,month,day,hour,min).timestamp()
이제는 파이썬으로 단조로운 시간을 보았습니다. 단조로운 시간을 사용하도록 스케줄러를 수정하려고합니다. 스케줄러는 그들이 말하는 단조로운 시간을 사용하기로되어 있습니다. 지연과
없음 문제 :
sleeptime = eventtime - time.monotonic()
은 여기서
eventtime = time.monotonic() + delay_seconds
그러나 정확한 시간
나는 가장 좋은 방법은 그대로 코드를 떠날 생각 없다. 그 맞습니까?예인 경우 단조로운 시간을 기준으로 한 대기열과 정규 시간을 기준으로하는 두 개의 대기열이 필요합니다. 나는 그 아이디어를별로 좋아하지 않는다.
['sched' 표준 모듈] (https://docs.python.org/3/library/sched.html)을 참고하십시오. 그것은 시간 조작 백엔드와 독립적으로 설계되었으며'time.monotonic'을 기본값으로 사용합니다. –