sched模块提供了一个用于事件调度的类。
>>> import sched, time >>> s = sched.scheduler(time.time, time.sleep) >>> def print_time(a='default'): print("From print_time", time.time(), a) >>> def print_some_times(): print(time.time()) s.enter(10, 1, print_time) s.enter(5, 2, print_time, argument=('positional',)) s.enter(5, 1, print_time, kwargs={'a': 'keyword'}) s.run() print(time.time()) >>> print_some_times() 930343690.257 From print_time 930343695.274 positional From print_time 930343695.275 keyword From print_time 930343700.273 default 930343700.276
>>> import sched, time >>> s = sched.scheduler(time.time, time.sleep) >>> def print_time(a='default'): print("From print_time", time.time(), a) >>> def print_some_times(): print(time.time()) s.enter(10, 1, print_time) s.enter(5, 2, print_time, argument=('positional',)) s.enter(5, 1, print_time, kwargs={'a': 'keyword'}) print("Next : ",s.run(False)) print(time.time())第一次调用:
>>> print_some_times() 1435115632.601069 Next : 5.0 1435115632.656073Next表示下一个事件将在5秒后执行。第二次超过10秒后调用:
>>> print_some_times() 1435115665.549954 From print_time 1435115665.596957 keyword From print_time 1435115665.607957 positional From print_time 1435115665.618958 default Next : 4.966997861862183 1435115665.635959这时事件已经全部达到执行时间点,所以全部立即执行。