fn handle()

in registry/zookeeper/src/lib.rs [327:359]


    fn handle(&self, event: WatchedEvent) {
        if let (WatchedEventType::NodeChildrenChanged, Some(path)) = (event.event_type, event.path)
        {
            let event_path = path.clone();
            let dirs = self
                .zk_client
                .get_children(&event_path, false)
                .expect("msg");
            let result: Vec<Url> = dirs
                .iter()
                .map(|node_key| {
                    let provider_url: Url = node_key.as_str().into();
                    provider_url
                })
                .collect();
            let res = self.zk_client.get_children_w(
                &path,
                ServiceInstancesChangedListener {
                    zk_client: Arc::clone(&self.zk_client),
                    path: path.clone(),
                    service_name: self.service_name.clone(),
                    listener: Arc::clone(&self.listener),
                },
            );

            info!("notify {}->{:?}", self.service_name, result);
            self.listener.notify(ServiceEvent {
                key: self.service_name.clone(),
                action: String::from("ADD"),
                service: result,
            });
        }
    }