【问题标题】:How to access and increase 'rx2.buffer-size' in RxJava 2?如何在 RxJava 2 中访问和增加“rx2.buffer-size”?
【发布时间】:2018-10-23 19:33:06
【问题描述】:

在http://reactivex.io/RxJava/javadoc/io/reactivex/Observable 中声明:

默认情况下,Observable 的操作符以 128 个元素的缓冲区大小运行(请参阅 Flowable.bufferSize(),可以通过系统参数 rx2.buffer-size 全局覆盖。

我的问题是,如何访问和设置rx2.buffer-size?如果我这样做:

import io.reactivex.Completable;
import io.reactivex.Flowable;
import io.reactivex.Observable;
import io.reactivex.Scheduler;
import io.reactivex.Single;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subjects.BehaviorSubject;
import io.reactivex.subjects.PublishSubject;
import io.reactivex.subjects.Subject;
import io.reactivex.*;

...后跟:

Integer bufferSize = rx2.buffer-size;

Studio 通知我:

  • 未使用的导入语句(用于import io.reactivex.*;)
  • 无法解析符号“rx2”
  • 无法解析符号“大小”

如何覆盖系统参数rx2.buffer-size?

我的项目正在使用

io.reactivex.rxjava2/rxandroid/2.0.1
io.reactivex.rxjava2/rxjava/2.1.11

【问题讨论】:

    标签: rx-java2 rx-android


    【解决方案1】:

    试试:

    Integer bufferSize = Integer.parseInt(System.getProperty("rx2.buffer-size"))
    

    设置新值:

    System.setProperty("rx2.buffer-size", 2048)
    

    【讨论】:

    • 请注意,您必须在初始化 RxJava 类之前执行此操作。
    • @suenda 谢谢! Integer bufferSize = Integer.parseInt(System.getProperty("rx2.buffer-size")) 应该改为:Integer bufferSize = Integer.parseInt(System.getProperty("rx2.buffer-size", "42")) 其中42 是默认值;否则,如果该属性未已经设置,则将返回 null(并且会发生坏事)。此外,2048 必须是字符串,而不是整数:System.setProperty("rx2.buffer-size", "2048")
    猜你喜欢
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多