每N秒运行一个函数或其他可调用的函数

recurring的Python项目详细描述


重复性

Build StatusCoverage StatusDocumentation Status

这是一个简单的库,用于运行函数或每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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java流/下载文件,无需在Spring Boot中保留内存   kotlin/java是否有类似TryParse()的东西?   java Spring引导找不到用户类型的属性ID   java Spring 2到Spring 3的迁移:一个控制器用于多个视图   java包含多个程序包名为“安卓”的库。支持图样可提取'   java spring JPA是否支持自定义值框架?   java转义出基于文本字段的搜索栏   java AAPT:错误:未找到样式属性“安卓:attr/WindowsPlashCreenBackground”   java从文本文件中读取纬度和经度   java哪里可以找到如何使用排序的示例。顺序ignorecase(),其中nullhandling nulls last用于自定义Spring JPA如何提供查询   尝试使用Dialogflow上的Webhook动态给出响应时,java获取Webhook响应错误(206)   如何在java中替换匹配的字符串?   java模拟数学的最大价值。随机的   java Spring RestTemplate GET请求未给出正确响应   春爪哇。lang.IllegalArgumentException   java系统。load()永远不会发生   java剪辑循环不工作   java如何从maven构建中删除staxapi   java ThreadPoolExecutor的排队行为是否可以自定义,以更喜欢创建新线程而不是排队?