簡體   English   中英

RxJava在Observable中收集AMPQ事件並訂閱緩沖區

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM