RxJava - 很长的延迟

时间:2017-11-16 23:13:05

标签: java rx-java system.reactive

我需要使用RxJava的延迟运算符。谁能解释它是如何工作的?线程在延迟期间是否睡眠?延迟有多严重?在最坏的情况下,我需要在1天(延迟24小时)后几乎发出物品。

1 个答案:

答案 0 :(得分:2)

使用延迟运算符,我们将管道的创建从延迟延迟到急切。 但是一旦开始发出延迟操作符就不会影响发出的项目

@Test
public void delayCreation() {
    long start = System.currentTimeMillis();
    Subscription subscription = Observable.just("hello reactive world")
            .delay(200, TimeUnit.MICROSECONDS)
            .subscribe(n -> System.out.println("time:" + (System.currentTimeMillis() - start)));
    new TestSubscriber((Observer) subscription).awaitTerminalEvent(1000, TimeUnit.MILLISECONDS);
}

您可以在此处查看更多延迟示例https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/utils/ObservableDelay.java