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