0
我創建這個訂閱,創建另一個訂閱:RxJava2:認購沒有達到
this.loggingInterval$
.filter(interval -> interval > 0)
.doAfterNext(
interval ->
{
Observable.interval(interval, TimeUnit.SECONDS)
.doOnNext(t -> this.readAdditionalConfigurationFile())
.doOnError(t -> LoggerFactory.getLogger(this.getClass()).error(t.toString()))
.takeUntil(this.destroy$)
.subscribe();
}
)
.takeUntil(this.destroy$)
.subscribe();
所以,每次interval
的變化,它是大於0我建一個訂閱閱讀配置文件中的每個新interval
秒。它在destroy$
排放true
時被破壞。
問題是interval.doOnNext()
永遠不會到達。
this.destroy$ = BehaviorSubject.createDefault(false);
this.loggingInterval$ = BehaviorSubject.createDefault(10);
任何想法?
是啊!它看起來非常好!儘管如此,我還要評論另一件事。我編輯了這篇文章。 – Jordi
因此,記錄間隔的'BehaviorSubject <>'實際上是改變f.e的值的「正確」方法。通過JMX暴露。但'destroy $'有點臭,你可以用plaing'private boolean destroy'替換它,只是'.takeUntil(dummy - > destroy)' - 或者只是退訂訂閱。 –