tmn*_*tmn 16 java reactive-programming rx-java
我想知道是否有一个cache()运营商可以缓存x个数量的排放,但也会在指定的时间间隔(例如1分钟)后使它们到期.我在寻找像......
Observable<ImmutableList<MyType>> cachedList = otherObservable
.cache(1, 1, TimeUnit.MINUTES);
Run Code Online (Sandbox Code Playgroud)
这将缓存一个项目,但会在一分钟后过期并清除缓存.
我做了一些研究,找到了重播算子.看起来它可以满足这种需求,但我有一些问题.为什么它很热并且需要连接?这是否与cache()运营商不同?我知道cache()模仿一个主题,但它不需要连接.
aka*_*okd 28
cache并replay适用于不同的用例.缓存是一种自动连接重放 - 通常用于长期重放的所有容器.重放可以有更多的参数化,可以进行有限的时间/大小重放,但需要开发人员指定何时开始.该autoConnect()运营商让你把这样的ConnectableObservable情况下,以一个普通的Observable曾经用户订购它们连接到源.这样,您可以进行有界和自动连接重播(需要RxJava 1.0.14+):
source.replay(1, TimeUnit.SECONDS).autoConnect().subscribe(...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8508 次 |
| 最近记录: |