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>

  • 相关阅读:
    ASP.NET MVC 常用内置验证特性 简介
    为什么要有get方法?-多态内存分析的应用
    多态的内存分析-转载
    抽象类和接口
    多态
    通过序列化复制整个对象
    检查异常和非检查异常
    怎样抛出自己定义的异常
    try catch和throws怎么用?-结合使用
    两个对象整体内容的比较-重写对象的equals方法
  • 原文地址:https://www.cnblogs.com/catkins/p/5270393.html
Copyright © 2011-2022 走看看