private void setCurSequence(Application application) {
    List<Node> nodes = application.getSubscribedNodeManager().getNodeList(NodeType.JOB_TRACKER);
    totalNodes = CollectionUtils.sizeOf(nodes);
    if (totalNodes == 0) {
      curSequence = 0;
    } else if (totalNodes == 1) {
      curSequence = 0;
    } else {
      List<Node> copy = new ArrayList<Node>(nodes);
      Collections.sort(
          copy,
          new Comparator<Node>() {
            @Override
            public int compare(Node left, Node right) {
              return left.getCreateTime().compareTo(right.getCreateTime());
            }
          });

      int index = 0;
      for (Node node : copy) {
        if (node.getIdentity().equals(application.getConfig().getIdentity())) {
          // 当前节点
          curSequence = index;
          break;
        }
        index++;
      }
    }
  }
  /** 记录节点上下线日志 */
  private void addLog(NotifyEvent event, List<Node> nodes) {
    List<NodeOnOfflineLog> logs = new ArrayList<NodeOnOfflineLog>(nodes.size());

    for (Node node : nodes) {
      NodeOnOfflineLog log = new NodeOnOfflineLog();
      log.setLogTime(new Date());
      log.setEvent(event == NotifyEvent.ADD ? "ONLINE" : "OFFLINE");

      log.setClusterName(node.getClusterName());
      log.setCreateTime(node.getCreateTime());
      log.setGroup(node.getGroup());
      log.setHostName(node.getHostName());
      log.setIdentity(node.getIdentity());
      log.setIp(node.getIp());
      log.setPort(node.getPort());
      log.setThreads(node.getThreads());
      log.setNodeType(node.getNodeType());

      logs.add(log);
    }

    nodeOnOfflineLogRepo.insert(logs);
  }