Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用kazoo停止zookeeper节点上的datawatch?_Python_Apache Zookeeper_Kazoo - Fatal编程技术网

Python 如何使用kazoo停止zookeeper节点上的datawatch?

Python 如何使用kazoo停止zookeeper节点上的datawatch?,python,apache-zookeeper,kazoo,Python,Apache Zookeeper,Kazoo,如何使用python模块kazoo显式停止zNode上启动的datawatch进程? 下面是我创建datawatch的方式 from kazoo.recipe.watchers import DataWatch datawatch = DataWatch(client=zookeeper_client, path=path_to_znode, func=callback_function) 我仔细研究并找出了以下方法 从传递的回调方法返回False(此处为callback_函数)将停

如何使用python模块kazoo显式停止zNode上启动的datawatch进程? 下面是我创建datawatch的方式

from   kazoo.recipe.watchers    import DataWatch
datawatch = DataWatch(client=zookeeper_client, path=path_to_znode, func=callback_function)
我仔细研究并找出了以下方法

  • 从传递的回调方法返回False(此处为callback_函数)将停止zNode上的datawatch。 但这种方式不适合我,因为回调函数是由用户处理的,而不是在我手中
  • 当进程停止时,datawatch会自动终止。但我不想停止这个过程
  • 这是我目前使用的黑客方式。 datawatch类下有一个私有成员变量“\u stopped”。我正在把它设置为真

    datawatch._stopped = True
    
  • 有人能在这里提出更好的解决方案吗。 谢谢。

    还说:

    如果客户端连接关闭(使用close命令),DataWatch将不再获得更新。 所以停止zookeeper客户端就足够了


    谢谢@Lorenzo,但我在问题的第2点中已经提到,我的案例不允许我关闭客户端连接。
    from kazoo.client import KazooClient
    
    zk = KazooClient(hosts='127.0.0.1:2181')
    zk.start()
    datawatch = DataWatch(client=zk, path=path_to_znode, func=callback_function)
    # time pass....
    zk.stop()