zoukankan      html  css  js  c++  java
  • 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+' ')
        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+' ')


    原因是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>

  • 相关阅读:
    机器学习算法
    消息队列
    net core 静态文件
    Startup 和 Middleware(中间件)
    HLS 协议
    Web APIs 基于令牌TOKEN验证的实现
    cyq.data开源
    FluentConsole是一个托管在github的C#开源组件
    数据层全栈式编程架构
    Java NIO 完全学习笔记(转)
  • 原文地址:https://www.cnblogs.com/catkins/p/5270393.html
Copyright © 2011-2022 走看看