gpt4 book ai didi

android - 更新同一订阅中的 flatMap 并发限制

转载 作者:行者123 更新时间:2023-11-29 01:26:52 25 4
gpt4 key购买 nike

我有一个 Android 服务,它在 PublishSubject 通过 EventBus 接收到下载事件时下载文件,我想根据设置限制并发下载的数量。

实例化服务时,它会创建 PublishSubject 和以下订阅:

PublishSubject<DownloadEvent> downloadsSubject = PublishSubject.create();

Subscription downloadSubscription = downloadsSubject
.subscribeOn(Schedulers.io())
.filter(event -> !isDownloaded(event))
.flatMap(this::addDownloadToQueue)
.flatMap(this::startDownload, preferences.getDownloadThreadsNumber())
.onBackpressureBuffer()
.subscribe();

但设置只有在订阅时才会获取,更改设置没有任何效果。

有没有一种方法可以为下一个队列发射更新此值(或其他方法)而无需再次订阅?

最佳答案

Here is一个带有自定义运算符的可运行类,它应该做你想做的事。

在这种情况下有几种竞争条件,我已经尝试涵盖其中的大部分。运算符(operator)不协调背压,因此您可能需要 onBackpressureBuffer

关于android - 更新同一订阅中的 flatMap 并发限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33532324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com