我有一个节点/任务,其中包含服务器需要执行的任务列表 . 我在那个节点上有一个观察者 . 当添加任务时,观察者调用zookeeper方法获取所有子节点,并且回调获取所有子节点的列表(我需要处理它) . 它看起来像这样:

Watcher newTaskWatcher = new Watcher(){
    public void process(WatchedEvent e) {
        if(e.getType() == EventType.NodeChildrenChanged) {
            getTasks();
        }
    }
};

void getTasks(){
    zk.getChildren("/tasks", 
            newTaskWatcher, 
            tasksGetChildrenCallback, 
            null);
}

ChildrenCallback tasksGetChildrenCallback = new ChildrenCallback() {
    public void processResult(int rc, String path, Object ctx, List<String> children){
        switch(Code.get(rc)) { 
        case CONNECTIONLOSS:
            getTasks();
            break;
        case OK:
        // loop on children list and process all the tasks
            break;
        default:
            System.out.println("getChildren failed");
        }
    }
};

但回调得到了所有的任务,我只想要添加的那些任务,所以我不会两次处理任务 .

做这个的最好方式是什么 .