private void setPhpClientList(ZKManager zkmanager) {
   List<String> phpClients = zkmanager.getPhpClient();
   Map<String, String> generatePathMap = this.zkmanager.getGeneratePath();
   String zkRootPath = zkmanager.getZkRootPath();
   if (!phpClients.isEmpty()) {
     for (String path : phpClients) {
       PhpClientDO client = new PhpClientDO();
       String[] strs = path.split(FileUtil.SPLIT_STR);
       client.setAppName(strs[0]);
       client.setDbConfigName(strs[1]);
       client.setGenerateFilePath(generatePathMap.get(strs[0]));
       client.setChildPath(zkRootPath + ZKManager.ZK_SEPARATOR + path + "/base_config");
       client.setNodePath(zkRootPath + ZKManager.ZK_SEPARATOR + path);
       phpClientList.add(client);
     }
   }
 }
  @Override
  public void process(WatchedEvent event) {
    log.info("已经触发了" + event.getType() + "事件!");
    String event_path = event.getPath();
    ZooKeeper zookeeper = zkmanager.getZookeeper();
    if (event.getType() == Event.EventType.NodeDataChanged) {
      try {
        if (!this.phpClientList.isEmpty()) {
          for (PhpClientDO client : this.phpClientList) {
            String baseConfigPath = client.getChildPath();
            if (baseConfigPath.equals(event_path)) {
              String app_db_name_path = client.getNodePath();
              String db_config_name = client.getDbConfigName();
              List<String> list = new ArrayList<String>();
              byte[] bytes = new byte[0];
              if (zookeeper.exists(baseConfigPath, false) != null) {
                bytes = zookeeper.getData(baseConfigPath, true, null);
              }
              if (zookeeper.exists(app_db_name_path, false) != null) {
                list = zookeeper.getChildren(app_db_name_path, true);
              }
              log.info("NodeDataChanged path is : " + event_path);
              String str = FileUtil.listToString(list, bytes, db_config_name);
              FileUtil.writeFile(client.getGenerateFilePath(), "<?php\n" + str);
            }
          }
        }
      } catch (KeeperException e) {
        log.error(e.getMessage());
      } catch (InterruptedException e) {
        log.error(e.getMessage());
      }
    }
    if (event.getType() == Event.EventType.NodeChildrenChanged) {
      try {
        if (!this.phpClientList.isEmpty()) {
          for (PhpClientDO client : this.phpClientList) {
            String app_db_name_path = client.getNodePath();
            if (app_db_name_path.equals(event_path)) {
              String baseConfigPath = client.getChildPath();
              String db_config_name = client.getDbConfigName();
              List<String> list = new ArrayList<String>();
              byte[] bytes = new byte[0];
              if (zookeeper.exists(baseConfigPath, false) != null) {
                bytes = zookeeper.getData(baseConfigPath, true, null);
              }
              if (zookeeper.exists(app_db_name_path, false) != null) {
                list = zookeeper.getChildren(app_db_name_path, true);
              }
              log.info("NodeChildrenChanged path is : " + event_path);
              String str = FileUtil.listToString(list, bytes, db_config_name);
              FileUtil.writeFile(client.getGenerateFilePath(), "<?php\n" + str);
            }
          }
        }
      } catch (KeeperException e) {
        log.error(e.getMessage());
      } catch (InterruptedException e) {
        log.error(e.getMessage());
      }
    } else if (event.getState() == KeeperState.SyncConnected) {
      log.info("收到ZK连接成功事件!");
    } else if (event.getState() == KeeperState.Expired) {
      log.error("会话超时,等待重新建立ZK连接...");
      try {
        zkmanager.reConnection();

        if (!this.phpClientList.isEmpty()) {
          for (PhpClientDO client : this.phpClientList) {
            if (zookeeper.exists(client.getNodePath(), false) != null) {
              this.zkmanager.getZookeeper().getChildren(client.getNodePath(), true);
            }
            if (zookeeper.exists(client.getChildPath(), false) != null) {
              this.zkmanager.getZookeeper().getData(client.getChildPath(), true, null);
            }
          }
        }
      } catch (Exception e) {
        log.error(e.getMessage());
      }
    }
  }