in app/metrics/src/main/java/com/googlecodesamples/cloud/jss/metrics/service/EventSubscriberService.java [57:76]
public Subscriber startSubscriberAsync() {
logger.info("metric app type: {}", metricAppType);
subscriber = factory.createSubscriber();
// Listen for unrecoverable failures. Recreate subscriber and restart subscribing.
subscriber.addListener(
new Subscriber.Listener() {
public void failed(Subscriber.State from, Throwable failure) {
cleanUp();
if (!factory.getProvider().getExecutor().isShutdown()) {
startSubscriberAsync();
}
}
},
MoreExecutors.directExecutor());
// Start the subscriber to receive messages.
subscriber.startAsync().awaitRunning();
return subscriber;
}