@Override
public List<PubSubMessage> getMessages() {
List<PubSubMessage> messages = new ArrayList<>();
long currentTime = System.currentTimeMillis();
if (currentTime - lastRequest <= minWait) {
return messages;
}
lastRequest = currentTime;
for (String url : urls) {
try (CloseableHttpResponse response = client.execute(makeHttpGet(url))) {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == RESTPubSub.OK_200) {
HttpEntity httpEntity = response.getEntity();
String message = EntityUtils.toString(httpEntity, RESTPubSub.UTF_8);
log.debug("Received message from url: {}. Message was {}", url, message);
messages.add(PubSubMessage.fromJSON(message));
EntityUtils.consume(httpEntity);
} else if (statusCode != RESTPubSub.NO_CONTENT_204) {
log.error("HTTP call to {} failed with status code {} and response {}.", url, statusCode, response);
}
} catch (Exception e) {
log.error("HTTP call to {} failed with error:", url, e);
}
}
return messages;
}