python zookeeper 在 uwsgi中 watcher不生效

def code_watcher(handle,type, state, path):
    print "zk code watcher,path is: ",path
#data = zk.get(settings.ZKPATH_CODE,code_watcher)
    data = zookeeper.get(zk,settings.ZKPATH_CODE,code_watcher)
    code_json = json.loads(data[0])
    with open("./code_by_client.py",'w') as f:
        for line in code_json:
            f.write(line+'\n')
    reload(code_by_client) 


def generate_client_code():
    print "zk code,path is: ",settings.ZKPATH_CODE
#data = zk.get(settings.ZKPATH_CODE,code_watcher)
    data = zookeeper.get(zk,settings.ZKPATH_CODE,code_watcher) 
    code_json = json.loads(data[0])
    with open("./code_by_client.py",'w') as f:
        for line in code_json:

            f.write(line+'\n')


原因是uwsgi没有开启多线程,而我们调用的zookeeper.so是需要多线程的。


修改uwsgi配置,加上一行 <enable-threads>1</enable-threads>,如下,


<uwsgi>
  <!--
  <cluster>225.1.1.1:3333</cluster>
  <socket>192.168.60.*:3031</socket>
  <http>127.0.0.1:3031</http>
  -->
  <http>192.168.61.89:3456</http>
  <pythonpath>../</pythonpath>
  <module>service</module>
  <master>1</master>
  <processes>4</processes>
  <disable-logging />
  <daemonize>logs/uwsgi_bfdds.log</daemonize>
  <buffer-size>16384</buffer-size>
  <harakiri>5</harakiri>
  <pidfile>uwsgi_bfdds.pid</pidfile>
  <stats>127.0.0.1:3457</stats>
  <enable-threads>1</enable-threads>
</uwsgi>

转载于:https://www.cnblogs.com/catkins/p/5270393.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值