在给定时间段内仅运行一次python脚本或函数。
项目描述
once_only
在给定时间段内仅运行一次python脚本或函数。
例如,如果您有一个可能会频繁调用的脚本或服务,但您只想每天报告一次错误以避免过多打扰人们,那么 once_only 就是您需要的库。
快速入门
假设您想让您的脚本抱怨,但不超过一天一次。 once_only.daily 是您需要的工具
import once_only @once_only.daily def complain(): print("This is not right!")
现在您可以多次运行 complain,无论是从同一个python脚本还是从其他脚本,它最多一天运行一次,因此两次抱怨之间至少有24小时。
如果您想更频繁或更少地抱怨,还有其他变体
对象 |
时间差 |
---|---|
once_only.weekly |
1周 |
once_only.daily |
1天 |
once_only.hourly |
1小时 |
once_only.minutely |
1分钟 |
once_only.Once() |
自定义 datetime.timedelta |
高级用法
您不仅可以使用 once_only.Once 对象作为装饰器,还可以通过 check_ready() 和 check_ready_trigger() 函数直接访问它
import once_only import datetime once_every_two_hours = once_only.Once(datetime.timedelta(hours=2)) if once_every_two_hours.check_ready(): print("More than two hours have passed since last run!") if not_a_dry_run and once_every_two_hours.check_ready_trigger(): print("Triggering timer and running!")
请注意,所有具有相同时间差的 once_only.Once 实例共享同一个计时器,但不同时间差的实例则不共享。因此,如果您之前从未运行过任何东西,这将
import once_only import datetime @once_only.minutely def run_minutely(): print("minutely") @once_only.hourly def run_hourly(): print("hourly") @once_only.Once(datetime.timedelta(minutes=60)) def run_every_60_minutes(): print("60 minutes") run_minutely() run_hourly() run_every_60_minutes()
打印“minutely”和“hourly”,但不会打印“60 minutes”,因为60分钟与一小时相同,所以60分钟的计时器已经被run_hourly触发,而run_every_60_minutes将不会运行。
更多信息请参阅: https://once_only.readthedocs.io.
许可
版权所有 2022,波茨坦气候影响研究学院 e.V.
根据Apache许可证版本2.0(“许可证”);除非符合许可证或书面同意,否则不得使用此文件。您可以在以下地址获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”分发,不提供任何形式的明示或暗示保证。有关许可证的具体语言管理权限和限制,请参阅许可证。
变更日志
1.0.0 (2022-09-16)
首次提交。
实现了once_only.Once类,具有直接访问API和装饰器功能。
添加快速入门文档。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
once_only-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 668be5d51d32df804880dd54ec08bfb707b68be11092e93fb46440647ac355f8 |
|
MD5 | 2368ec17cb71800060043755465997fe |
|
BLAKE2b-256 | c5b26c958a0a5737a2b92e16679f11d3e7f1831c482bf50adda6c36319dec914 |
once_only-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a51578cdd39609dd63075881f0bca195418486f8300213617b1399e5b75f8389 |
|
MD5 | 388e154422600d1c43070cb7e7167409 |
|
BLAKE2b-256 | bd2f62f266ef12e45c7748335c2b90dfc261862591d472b27726daac98558009 |