sched —事件调度程序

源代码: Lib/sched.py


sched模块定义一个实现通用事件调度程序的类:

在版本 3.3 中更改:* timefunc delayfunc *参数是可选的。

在版本 3.3 中更改:scheduler类可以在多线程环境中安全使用。

Example:

>>> 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

Scheduler Objects

scheduler个实例具有以下方法和属性:

执行事件意味着执行action(*argument, **kwargs)。 * argument 是一个序列,其中包含 action *的位置参数。 * kwargs 是一本字典,其中包含 action *的关键字参数。

返回值是一个事件,可用于以后取消该事件(请参见cancel())。

在版本 3.3 中更改:* argument *参数是可选的。

在版本 3.3 中更改:添加了* kwargs *参数。

在版本 3.3 中更改:* argument *参数是可选的。

在版本 3.3 中更改:添加了* kwargs *参数。

如果* blocking *为 false,则执行计划事件,因为该事件将很快到期(如果有),然后在计划程序中返回下一个计划调用的截止时间(如果有)。

如果一系列事件花费的时间比下一个事件发生之前的时间长,则调度程序将完全落后。不会删除任何事件;调用代码负责取消不再相关的事件。

在版本 3.3 中更改:添加了* blocking *参数。

首页