fix issue that server list never updated

This commit is contained in:
ascrutae 2017-07-07 19:45:32 +08:00
parent 408d57095a
commit a24f4fdce2
1 changed files with 19 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
@ -66,11 +67,14 @@ public class DiscoveryRestServiceClient implements Runnable {
for (JsonElement element : serverList) {
newServerList.add(element.getAsString());
}
if (!newServerList.equals(GRPC_SERVERS)) {
if (!isListEquals(newServerList, GRPC_SERVERS)) {
GRPC_SERVERS = newServerList;
logger.debug("Refresh GRPC server list: {}", GRPC_SERVERS);
} else {
logger.debug("GRPC server list remain unchanged: {}", GRPC_SERVERS);
}
}
}
}
@ -82,6 +86,20 @@ public class DiscoveryRestServiceClient implements Runnable {
}
}
private boolean isListEquals(List<String> list1, List<String> list2) {
if (list1.size() != list2.size()) {
return false;
}
for (String ip1 : list1) {
if (!list2.contains(ip1)) {
return false;
}
}
return true;
}
/**
* Prepare the given message for HTTP Post service.
*