RxJava2 中 Publisher 和 Flowable 的 Mutiny 等价物是什么
What are the Mutiny equivalents to Publisher and Flowable in RxJava2
我想创建一个可以将对象推送到其中的缓冲 Multi。 Multi 用作 REST 端点的结果。
我目前拥有的是:
class MyService {
private PublishProcessor<String> deviceStatusProcessor = PublishProcessor.create();
private Flowable<String> deviceStatusQueue = Flowable.fromPublisher(deviceStatusProcessor);
public void pushDeviceStatus(DeviceStatus deviceStatus) {
deviceStatusProcessor.onNext(deviceStatus);
}
public Multi<String> getStream() {
return Multi.createFrom().publisher(deviceStatusQueue);
}
}
但是这段代码混合了 RxJava 和 Mutiny。 Publisher 和 Flowable 的 Mutiny 等价物是什么?
似乎BoadcastProcessor is equivalent to PublishProcessor. There is also UnicastProcessor,它有缓冲,但只推送给一个订阅者。
这取决于你想做什么。
默认情况下,Multi 在有订阅之前不会发出任何东西,在你的情况下我相信这将是 REST 端点(每个收到的请求 1 个订阅)。
UnicastProcessor 正在以无限制的方式存储所有发出的项目。所以要注意,如果有物品但没有人消费,如果不小心使用,可能会导致OutOfMemoryException
。
BroadcastProcessor 不存储项目,而是将它们分派给多个订阅者。
我想创建一个可以将对象推送到其中的缓冲 Multi。 Multi 用作 REST 端点的结果。
我目前拥有的是:
class MyService {
private PublishProcessor<String> deviceStatusProcessor = PublishProcessor.create();
private Flowable<String> deviceStatusQueue = Flowable.fromPublisher(deviceStatusProcessor);
public void pushDeviceStatus(DeviceStatus deviceStatus) {
deviceStatusProcessor.onNext(deviceStatus);
}
public Multi<String> getStream() {
return Multi.createFrom().publisher(deviceStatusQueue);
}
}
但是这段代码混合了 RxJava 和 Mutiny。 Publisher 和 Flowable 的 Mutiny 等价物是什么?
似乎BoadcastProcessor is equivalent to PublishProcessor. There is also UnicastProcessor,它有缓冲,但只推送给一个订阅者。
这取决于你想做什么。
默认情况下,Multi 在有订阅之前不会发出任何东西,在你的情况下我相信这将是 REST 端点(每个收到的请求 1 个订阅)。
UnicastProcessor 正在以无限制的方式存储所有发出的项目。所以要注意,如果有物品但没有人消费,如果不小心使用,可能会导致OutOfMemoryException
。
BroadcastProcessor 不存储项目,而是将它们分派给多个订阅者。