All Downloads are FREE. Search and download functionalities are using the official Maven repository.

netflix.ocelli.rxnetty.RxNettyFailureDetector Maven / Gradle / Ivy

There is a newer version: 0.1.0-rc.2
Show newest version
package netflix.ocelli.rxnetty;

import io.reactivex.netty.metrics.HttpClientMetricEventsListener;

import java.util.concurrent.TimeUnit;

import rx.Observable;
import rx.Observable.OnSubscribe;
import rx.Subscriber;
import rx.Subscription;
import rx.functions.Func1;

/**
 * A failure detector for RxNetty that detects failures which determine host health.
 */
public class RxNettyFailureDetector implements Func1, Observable>{

    @Override
    public Observable call(final HttpClientHolder holder) {
        return Observable.create(new OnSubscribe() {
            @Override
            public void call(final Subscriber sub) {
                Subscription s = holder.getClient().subscribe(new HttpClientMetricEventsListener() {
                    @Override
                    protected void onConnectFailed(long duration, TimeUnit timeUnit, Throwable throwable) {
                        sub.onNext(throwable);
                    }
                });
                
                sub.add(s);
            }
        });
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy