Как правильно выполнить приведенные ниже тесты с использованием rxjava2?
Имея список серверов ntp, тестируйте каждый из них, пока не добьетесь успеха.
Пример:
- time.nist.gov -> тайм-аут
- pool.ntp.org -> время ожидания
- time.google.com -> успех, дата получения
- time.apple.com -> игнорировать
Я не хочу проверять все в параллелях, но по одному. И если все не удается, он снова запускает тест.
Используя только один сервер, я использую следующий код:
public void getTime() {
timeObservable = Observable
.fromCallable(new Callable<Date>() {
@Override
public Date call() throws IOException {
return connectAndGetTime(HOST);
}
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(new Consumer<Throwable>() {
@Override
public void accept(Throwable error) {
Timber.tag(TAG).e(error);
}
})
.retry(5);
timeObservable.subscribe(new Consumer<Date>() {
@Override
public void accept(Date date) {
mDate = date;
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) {
Timber.tag(TAG).e(throwable);
}
});
}
Спасибо!