最近使用python处理计划调度方面的工作,主要是事件的延期执行。
总结有三种方式。
1. 使用wx.Timer. 当然前提是使用wxpython进行编程。
这种方式的好处是,wx.Timer默认支持重复执行。但是有时间限制,设定轮循(延迟)时间最好在1ms以内,最大不能超过1s。超过会引起什么样的结果, 我尚未测试。
2. 使用sched模块。
该模块是python 2.5, 2.6内置模块,使用比较简单, 而且可以配置多个schedule。
但是该模块只能在单线程中使用, 当schedule中的事件队列(event queue)非空时,就不能为该scheduler添加新的事件。
3. 使用threading模块的Timer class。
使用Timer, 就可以避免sched模块的缺点。因为每一个事件,都是使用一个Timer实例进行管理,也就是一个单独的线程存在,这样就避免了不能动态添加scheduler的问题。
可以参考:http://docs.python.org/library/sched.html
写到这里,将参考文章上的例子copy过来,
1. 使用sched.scheduler.
>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time(): print "From print_time", time.time()
...
>>> def print_some_times():