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

时间:2016-10-20 11:36:07

标签: python apache-zookeeper kazoo

如何使用python模块kazoo显式停止在zNode上启动数据监视进程? 以下是我创建数据监视器的方式

from   kazoo.recipe.watchers    import DataWatch
datawatch = DataWatch(client=zookeeper_client, path=path_to_znode, func=callback_function)

我经历了kazoo wiki并想出了以下方法。

  1. 从传递的回调方法返回False(此处为callback_function)将在zNode上停止datawatch。 但这种方式不适合我,因为callback_function由用户处理,而不在我手中。
  2. 当进程停止时,数据表会自动被杀死。但我不想停止这个过程。
  3. 这是我目前使用的hacky方式。 有一个私有成员变量" _stopped"在datawatch类下。我将其设置为真。

    datawatch._stopped = True
    
  4. 有人可以在这里建议更好的解决方案。 感谢。

1 个答案:

答案 0 :(得分:1)

DataWatch Doc也说:

  

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

$("html, body").animate({
                    scrollTop: 0
               }, 500);