[英]RxJava collect AMPQ event in an Observable and subscribe with a buffer
我必須收集一些AMPQ事件,然后使用緩沖區每10秒打印一次。
private Observable<Event> obs = Observable.empty();
private final Disposable disposable = obs.buffer(10, SECONDS)
.retry(t -> true)
.subscribe(System.out::println);
@Override
public void handle(final Event event, final MessageContext context) throws MessageConsumptionException {
obs = obs.concatWith(Observable.just(event));
}
事件是消息, 無效句柄是消費者。
我調試了這段代碼,它只打印一個空列表,這很有意義,因為obs是空的。
如何在此Observable中添加(並舉事件)事件並連續執行一次性事件? 謝謝。
您需要可以訂閱的主題 。 可以使用next(T element)
將新元素推入主題
private Subject<Event> subject = ReplaySubject.create();
@Override
public void handle(final Event event, final MessageContext context) throws MessageConsumptionException {
subject.next(event);
}
public Observable<Event> getObservable() {
subject.asObservable();
}
您可以訂閱由getObservable()
方法返回的getObservable()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.