如何使用 python 模块 kazoo 显式停止在 zNode 上启动的 datawatch 进程?以下是我创建数据观察的方式
from kazoo.recipe.watchers import DataWatch
datawatch = DataWatch(client=zookeeper_client, path=path_to_znode, func=callback_function)
我浏览了kazoo wiki并想出了以下方法。
- 从传递的回调方法返回 False(此处为 callback_function)将停止 zNode 上的数据监视。但这种方式不适合我,因为 callback_function 由用户处理而不是在我手中。
- 当进程停止时,datawatch 会自动被杀死。但我不想停止这个过程。
这是我目前使用的 hacky 方式。datawatch 类下有一个私有成员变量“_stopped”。我将其设置为 true。
datawatch._stopped = True
有人可以在这里提出更好的解决方案。谢谢。