首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引发异常时,kazoo DataWatch不退出程序

引发异常时,kazoo DataWatch不退出程序
EN

Stack Overflow用户
提问于 2017-11-21 21:32:36
回答 0查看 119关注 0票数 0

我使用的是kazoo=2.2.1,Python2.7,zookeeper 3.4.5--1。我已经设置了一个DataWatch,如果回调引发异常,我想中止程序。我无法使用以下代码中止

代码语言:javascript
复制
from kazoo.recipe.watchers import DataWatch
from utils.zookeeper import Zookeeper
import time
import sys


def do_stuff(data, stat):
   raise NotImplementedError("abort")


def wrap_do_stuff(data, stat):
    try:
        do_stuff(data, stat)
    except Exception as e:
        if data != '':
            print e.message

            # This does not exit the program
            # sys.exit(-1)

            # This does not exit the program
            # raise e

            # This does not exit the program, just stop the watcher
            return False


def start():
    zookeeper_client = Zookeeper.init_from_config().client
    # Someone is writing into this node after creation
    new_node_path = zookeeper_client.create('/test/',
                                        ephemeral=True, sequence=True)
    path_to_watch = new_node_path
    print path_to_watch
    datawatcher = DataWatch(zookeeper_client, path_to_watch, wrap_do_stuff)

    while True:
        time.sleep(2)
        print "still alive"


if __name__ == '__main__':
    start()

`

如何在wrap_do_stuff()中中止

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47414382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档