从动物园管理员那里拿到锁并执行

lockex的Python项目详细描述


lockex是一种工具,它试图在执行用户提供的命令之前从zookeeper获取锁。


警告而不是阻塞,LoCeX可以在给定的
超时或立即退出。锁id根据用户提供的命令自动生成。我们还假设要运行的用户命令在前台执行。

如果连接挂起,它将继续运行。发生这种情况时,lockex将尽最大努力清除子进程。


许可证
----


请参阅复制

>用例:
----


*您有一个基于生产者/消费者的守护进程,一次只能运行一个
生产者。*lockex*允许您启动多个生产者,但如果获得了锁,则只有一个生产者可以运行。

*一个长时间运行的cronjob,并且您希望保证它仅在一台主机上运行,前提是所有作业都在一个小时间窗口内启动。



https://github.com/rapid7/lockex



用法:
----


running*lockex--help*将提供有关如何使用应用程序的信息。通常,

lockex选项——您的_命令您的_args

*lockex*会将“---”之后的任何内容视为要运行的命令。*lockex*还将查找ZKHOSTS环境变量
以连接到zookeeper群集,格式为逗号分隔的
“主机名:端口”列表。




示例:
--



运行的单个redis实例(假设数据
存储在共享位置)


在host1上运行相同的命令


host1的实例redis死亡时,host2将从zookeeper和启动redis获取锁
。在控制示例中,使用SIGTERM发送host1的lockex实例,它将杀死它的子进程。




要求:
----


*zookeeper和python2.7或更高版本的工作安装。
*zookeeper的持久实例(至少三个节点)。
*主机都与ntp.

自动售包:
————

*lockex/glog.py-https://github.com/benley/python-glog-版权所有(c)2015 Benjamin Staffin-根据2条BSD许可证。

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

推荐PyPI第三方库


热门话题
java Clojure关键字在内存中的大小是多少?   Java中有固定长度的通用数组对象吗?   PostgreSQL:通过Java更新我的用户表   错误:使用java解析xml   java Json显示列表中对象的名称   java比较JodaTime时区   与JAVA中的API和包的区别?   java的int值在for循环中不改变   谷歌应用引擎中的java RSA   迁移到spring 5后出现java非法字符错误   java Websphere管理控制台不工作   JavaGSON如何始终在json中包含毫秒?   带有空格和双引号的windows Java ProcessBuilder命令参数失败   java错误:重复的zip条目[43.jar:org/apache/http/annotation/NotThreadSafe.class]