确保单个进程正在运行。使用锁文件和进程检查。
sing的Python项目详细描述
确保单个进程正在运行。使用锁文件和进程检查。
为什么?
有时您希望流程最多运行一次,例如 计划的cron作业,在重新启动之前应始终完成。那个 是我的案子。
安装
pip install sing
示例
通常,在文件的开头,您可能要声明 您希望成为单个实例:
fromsingimportsingleassertsingle()
就这样,对于大多数用例,您不需要其他任何东西。这个 如果锁已经被占用,assert将失败。
这使用一个pid锁文件,在一个临时文件夹中来确保这一点。更多关于 在sing.py
在这种情况下,您可能希望授予来自同一进程的所有锁 你需要。
assertsingle(allow_all_from_this_process=True)
你可能有不同的子部分,你想有不同的 锁,即使你在同一个进程中,它们都会返回 正确:
single(flavor='first')single(flavor='second')
最后,如果有一个pid文件,但是进程终止了,您可能希望 把锁打开。使用ensure_process_running检查它。
注释
- 自由软件:麻省理工学院许可证
- 文档:https://python-sing.readthedocs.io。
学分
此包是用 Cookiecutter和 audreyr/cookiecutter-pypackage 项目模板。
很多灵感来自 pycontribs/tendo服务 同样的目的。我需要PID文件,并允许相同的进程授权,所以 做了这个包裹。
历史
0.1.0(2018-02-25)
- pypi上的第一个版本。