in src/main/java/org/apache/jenkins/gitpubsub/GitPubSubPoll.java [114:161]
protected void execute(TaskListener listener) throws IOException, InterruptedException {
if (lastReport < System.currentTimeMillis()) {
if (lastReport == 0) {
lastReport = System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(15);
} else {
lastReport = lastReport + TimeUnit.MINUTES.toMillis(15);
LOGGER.log(Level.INFO, "GitPubSub {0,number} events processed. "
+ "stillalive: {1,number}; push: {2,number}",
new Object[]{allEvents.get(), aliveEvents.get(), pushEvents.get()});
}
}
if (longPollRequest != null) {
if (lastTime - System.currentTimeMillis() > TimeUnit.SECONDS.toMillis(60)) {
LOGGER.log(Level.FINE, "GitPubSub request looks dead, restarting...");
longPollRequest.cancel(false);
} else if (!longPollRequest.isDone() && !longPollRequest.isCancelled()) {
LOGGER.log(Level.FINER, "GitPubSub request looks alive");
// still alive
return;
}
LOGGER.log(Level.FINE, "GitPubSub request completed, restarting...");
if (client != null && !client.isClosed()) {
LOGGER.log(Level.FINE, "Stopping AsyncHttpClient instance");
client.close();
}
} else {
LOGGER.log(Level.INFO, "Starting GitPubSub request...");
}
RequestBuilder builder = new RequestBuilder("GET")
.setUrl(JsonHandler.GITPUBSUB_URL);
if (lastTS != 0) {
builder.addHeader("X-Fetch-Since", Long.toString(lastTS));
}
if (client == null || client.isClosed()) {
LOGGER.log(Level.FINE, "Starting AsyncHttpClient instance");
client = new AsyncHttpClient(
new AsyncHttpClientConfig.Builder()
.setAllowPoolingConnection( false )
.setRequestTimeout(
requestRecycleMins == -1
? -1
: (requestRecycleMins + 1) * 60 * 1000)
.setProxyServer(AHCUtils.getProxyServer())
.setHostnameVerifier(AHCUtils.getHostnameVerifier()).setSSLContext(AHCUtils.getSSLContext())
.build());
}
longPollRequest = client.executeRequest(builder.build(), new JsonHandler());
}