in agent/src/c/src/fsof_main.c [281:324]
static void set_all_providers_watcher(struct String_vector *list) {
struct String_vector *provider_list = NULL;
char provider_key[512] = {0};
struct timeval start = {0};
struct timeval end = {0};
int exec_time = 0;
int i;
for (i = 0; i < list->count; i++) {
sprintf(provider_key,"%s/%s%s",FSOF_ROOT_NAME,list->data[i],PROVIDER_NAME);
fsof_zk_add_listener(provider_key,fsof_provider_node_watcher);
gettimeofday(&start,NULL);
provider_list = fsof_zk_get_children(provider_key);
gettimeofday(&end,NULL);
exec_time = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec); //calculate execute time
if (provider_list == NULL) {
fsof_log_info(INFO,"%s|FSOF_AGENT|%d|get zookeeper data failed!|get_zookeeper|%d",g_str_localip,-1,exec_time);
memset(provider_key,0,sizeof(provider_key));
sprintf(provider_key,"%s/%s",FSOF_ROOT_NAME,list->data[i]);
fsof_zk_add_listener(provider_key,fsof_service_node_watcher);
gettimeofday(&start,NULL);
provider_list = fsof_zk_get_children(provider_key);
gettimeofday(&end,NULL);
exec_time = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec); //calculate execute time
if (provider_list == NULL) {
fsof_log_info(INFO,"%s|FSOF_AGENT|%d|get zookeeper data failed!|get_zookeeper|%d",g_str_localip,-1,exec_time);
} else {
fsof_log_info(INFO,"%s|FSOF_AGENT|%d|get zookeeper data succeed!|get_zookeeper|%d",g_str_localip,0,exec_time);
}
}else {
//enum_provider_list(provider_list,provider_key);
fsof_log_info(INFO,"%s|FSOF_AGENT|%d|get zookeeper data succeed!|get_zookeeper|%d",g_str_localip,0,exec_time);
parse_provider_key(provider_list,provider_key);
}
memset(provider_key,0,sizeof(provider_key));
if (provider_list != NULL) {
deallocate_String_vector(provider_list);
free(provider_list);
}
}
}