每N秒运行一个函数或其他可调用的函数
recurring的Python项目详细描述
重复性
这是一个简单的库,用于运行函数或每N秒调用一次。这意味着应用程序需要在一个相对较长的、可能发生变化的时间段内调度小的、自约束的可调用。活期检查,状态快照,诸如此类。
如果:
- 您希望在应用程序的整个生命周期内定期调用某些内容。
- 您希望能够更改通话间隔时间。
- 您希望或需要避免每次使用线程的开销。(根据一台机器在无其他负载情况下的样本大小,最多1/5秒)
- 如果在应用程序生命周期结束时突然终止,那么您将调用的内容不会破坏机器。
这可能不适合您的项目,如果:
- 您已经在使用或者可能将要使用充实的并发框架。
- 你有很多事情想反复安排和运行。
- 您的可调用函数绝对必须执行一些清理代码,以避免在kill时发生灾难。
这不是用于顶级程序组合的库。
安装:
pip install recurring
用法:
import recurring
def stuff():
# do stuff ...
seconds_between_stuff = 30
job = recurring.job(stuff, seconds_between_stuff)
job.start()
# ...
seconds_between_stuff = 300000000 # this will be *from when rate is set*, not *from the next scheduled call*
job.rate = seconds_between_stuff
# ...
# stop making calls until start() is called again
job.stop()
# some time later ....
job.start()
# stop making calls permanently
job.terminate()
job.start() # raises RuntimeError
job.rate = 3000 # raises RuntimeError