Schedulers.io() 上的并行数据库搜索

2024-01-09

我想知道当我并行访问数据库表时是否应该使用 Schedulers.io() 还是 Schedulers.newThread() 。

例如,如果我使用 Schedulers.io() 并行地从数千个表中选择记录,则任务完成后会在线程池中创建很多新创建的线程。

Observabe.just("table1", "table2", "table3"...)
    .flatMap(t -> {
        // creating the observable that emits the record
        return Observable create(s -> {
                   Record rec = selectFrom(t);
                   s.onNext(rec);
                   s.onCompleted();
                 })
                 .subscribeOn(Schedulers.io()); // select in parallel
    })...

但是,如果此类任务是每晚批处理,则这些线程不必位于线程池中,因为它们中的大多数在大多数情况下都不需要。

在这种情况下,我认为我应该使用 Schedulers.newThread()。这样对吗?


如果你想限制 io 并行工作,那么使用自定义Scheduler:

Scheduler scheduler = Schedulers.from(Executors.newFixedThreadPool(6));

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Schedulers.io() 上的并行数据库搜索 的相关文章

  • PublishSubject 和 TestScheduler 出现问题,未发出项目

    我一直面临主题和测试调度程序的问题 如果我使用 Trampoline 调度程序 我的测试会通过 但由于某种原因 如果我使用 TestScheduler 测试会失败 这是我的示例测试和相关课程 RunWith MockitoJUnitRunn
  • Rx Java Observable 执行直到某个条件

    我正在尝试找到一种执行可观察的方法 直到满足某些条件 考虑以下示例 myDelayedObservable createListenerObserver public Observable
  • Schedulers.io() 上的并行数据库搜索

    我想知道当我并行访问数据库表时是否应该使用 Schedulers io 还是 Schedulers newThread 例如 如果我使用 Schedulers io 并行地从数千个表中选择记录 则任务完成后会在线程池中创建很多新创建的线程
  • RXJava2:链接改造请求的正确模式

    一般来说 我对 RXJava 比较陌生 实际上只是开始使用 RXJava2 而且我能找到的大多数文档往往是 RXJava1 现在我通常可以在两者之间进行转换 但是整个 Reactive 的东西太大了 它是一个压倒性的 API 并且有很好的文
  • 仅在某些条件下使用什么 RxJava 运算符来链接可观察量

    我正在 RxJava Android 中开发一个完整的应用程序 试图使事情尽可能成为 Rx 方式 我认为我已经实现了我想要的目标 但现在我遇到了一个问题 我确信存在更好的方法来做到这一点 它包括 从 Observable 获取布尔值 A 如
  • RxJava重试时出现奇怪的行为

    我正在玩 RxJava重试时间 http reactivex io documentation operators retry html操作员 网上关于它的资料很少 唯一值得一提的是this http blog danlew net 201
  • 调试未收到消息的 RxJava 问题的最佳方法是什么

    我有一个 Android 应用程序 其中包含多个A型观察者订阅多个B 类可观测量 订阅是在IO Scheduler中完成的 观察是在Android主线程上完成的 我遇到的问题是随机地经过一些工作后 A 从未收到 B 发出的一条消息 并且经过
  • 如何使用 RxJava 处理回收器视图的项目点击

    我有兴趣找出响应回收器视图的项目点击的最佳方式是什么 通常 我会向 ViewHolder 添加一个 onclick 侦听器 并通过接口将结果传回活动 片段 我考虑过在 onBindViewHolder 中添加一个 Observable 但我
  • 使用 RXJava 进行缓存处理

    我正在尝试使用 rxJava 实现此工作流程 但我确定我是否误用或做错了事情 用户要求登录 如果登录结果在缓存中可用 则 发出 缓存的登录结果 否则 如果一切成功 则实际执行对 Web 服务的请求并缓存结果 如果发生错误 最多重试 3 次
  • 重试时修改源 Observable - RxJava

    如何在重试时更新可观察的源 List
  • 如何在 RxJava 中计算移动平均线

    在金融领域 我们通常需要从时间序列数据流中计算移动窗口总值 以移动平均线为例 假设我们有以下数据流 T是时间戳 V是实际值 T0 V0 T1 V1 T2 V2 T3 V3 T4 V4 T5 V5 T6 V6 T7 V7 T8 V8 T9 V
  • 在后台运行 void 方法

    我想使用 rxjava 在后台运行一个方法 我不在乎结果 void myHeavyMethod 到目前为止 我唯一的解决方案是将返回类型修改为例如boolean boolean myHeavyMethod return true 之后我运行
  • RxJava 并行获取 Observables

    我需要一些帮助来在 RxJava 中实现并行异步调用 我选择了一个简单的用例 其中第一个调用获取 而不是搜索 要显示的产品列表 平铺 随后的调用将获取 A 评论和 B 产品图像 经过几次尝试我到达了这个地方 1 Observable
  • 使用 RxJava 进行电子邮件登录验证,可观察对象发出两次

    我正在制作一个简单的登录表单 电子邮件和密码 来尝试增强我的反应式编程技能 我在让电子邮件字段验证按照我想要的方式工作时遇到一些问题 这是我的代码 final Observable
  • 如何在改造多部分请求中发送对象数组

    I want to send array objects with multipart data I tried many ways but it is not working My issue with the contributor p
  • RxJava 作为事件总线?

    我开始学习 RxJava 到目前为止我很喜欢它 我有一个片段与单击按钮时的活动进行通信 用新片段替换当前片段 谷歌推荐界面 http developer android com training basics fragments commu
  • RxJava 中的笛卡尔积

    是否有可能在rxjava中获得两个Observables的笛卡尔积 像这样的事情 A gt 1 2 3 B gt a b A x B gt 1 a 1 b 2 a 2 b 3 a 3 b 你想要的是 对于一个数字 产生与你有字母一样的一对
  • RxJava 中的 n 元笛卡尔积

    现在我持有一个Observable
  • 如何在BehaviorSubject中设置默认值

    可能是一个菜鸟问题 如何为BehaviorSubject 设置默认值 我有一个具有 2 个不同值的枚举 enum class WidgetState HIDDEN VISIBLE 以及发出状态的行为主体 val widgetStateEmi
  • RxJava - 链接请求和更新 UI

    我遇到的问题是这样的 我需要向服务器执行几个请求 下一个请求取决于前一个请求的结果 它们看起来像这样 缩写 Observable

随机推荐

  • 如何配置 Spring Boot Kafka 客户端使其不尝试连接

    这与Spring Boot Kafka 客户端有 断路器 吗 https stackoverflow com q 69914621 2886891 但我仍然认为这是一个不同的问题 我们需要配置 Spring Boot Kafka 客户端 以
  • Java中JSONPath的基本使用

    我有 JSON 作为字符串和 JSONPath 作为字符串 我想使用 JSON 路径查询 JSON 以字符串形式获取结果 JSON 我认为Jayway 的 json path https code google com p json pat
  • Javascript 原型链接超类构造函数和方法调用

    我是 JavaScript 世界的新手 当我尝试原型链继承时 我遇到了这个奇怪的问题 我有3节课 class parent function parent param 1 this param param 1 this getObjWith
  • 使用 Emacs 作为 IDE

    目前 当我使用 C 或 C 进行编码时 我使用 Emacs 的工作流程涉及三个窗口 右侧最大的包含我正在使用的文件 左侧分为两部分 底部是一个 shell 我用它来输入编译或 make 命令 顶部通常是我在工作时想要查阅的某种文档或自述文件
  • 如何将字符串转换为 const class int 值?

    我有变量 String colorName BLUE 我想在 Android 应用程序中将此颜色设置为油漆 它应该是这样的 paint setColor Color colorName 但我收到错误警告 因为 setColor 函数的参数应
  • Spring RestTemplate,在解析为 Json 之前拦截响应

    我有一个 REST api 它在正文内容中响应一些额外的非 JSON 数据 这破坏了 RestTemplate 和 jackson 的使用 我可以在解析之前拦截http响应正文吗 我正在使用 RestTemplate getForObjec
  • 如何将不以特定模式开头的行连接到 UNIX 中的上一行?

    请查看下面的示例文件和所需的输出 以了解我正在寻找的内容 它可以通过 shell 脚本中的循环来完成 但我正在努力获得一个awk sed一艘班轮 示例文件 txt These are leaves These are branches Th
  • std::vector 向下调整大小

    C 标准似乎没有声明任何有关容量的副作用resize n with n lt size or clear 它确实对摊余成本做出了声明push back and pop back O 1 我可以设想一种执行通常类型的容量更改的实现 ala C
  • iPhone 应用程序启动

    如何让我的 iPhone 应用程序每次都在同一位置启动 即我的 主 屏幕 我不希望用户回到上次玩游戏时的位置 就在游戏过程中 但这就是正在发生的事情 预先感谢您的任何提示 您需要设置UIApplicationExitsOnSuspend输入
  • asp-for 和 if 条件在同一组件中

    我正在尝试在组件内使用 asp for 和条件 但我找不到方法来做到这一点 这是我的代码
  • 设置定时器问题

    我的双核机器上运行以下代码 当我在同一台 PC 上运行该应用程序的一两个实例时 我的正确计时分辨率为 100 毫秒 然而 当我在同一台 PC 上运行同一应用程序的 3 个实例时 计时分辨率超过 100 毫秒 是否有可能使应用程序的 3 个实
  • Magento XML 用简单的英语构建?

    我一直在阅读有关 Magento 的内容 并且了解其请求周期的核心流程等 基于配置的 MVC 和类重写等 但是 我似乎找不到关于具体细节的好文章 文档 特别是当涉及到为自定义模块等构建 config xml 所需的不同节点时 或者 XML
  • 将不同版本的 python 与 virtualenvwrapper 一起使用

    我使用 Macports 在我的 Mac 上安装了各种版本的 python 当我选择 python 2 7 通过 port select python python27 virtualenvwrapper 工作完美 但是如果我选择另一个版本
  • 使用 boost 创建具有自定义环境的子进程

    文档boost https www boost org doc libs 1 64 0 doc html process html没有提供任何使用自定义环境创建子进程的示例process child 给出了一个例子process syste
  • 如何在单个事务中保存多个 django 模型?

    在我看来 我将数据保存在多个模型中 def myview request do some processing model1 save model2 save 如何确保有回滚model1 save 以防万一model2 save 引发错误
  • 当计时器结束时如何自动继续?

    我想在计时器用完时自动继续 我在这里构建了一个计时器 class Timer var timer NSTimer the callback to be invoked everytime the timer ticks var handle
  • 创造一个只是兑现的空洞承诺? [复制]

    这个问题在这里已经有答案了 我有一个包装器 可以捕获承诺的最后结果 对其进行格式化并输出数据 req resolve promise gt return promise then gt res json req user catch Seq
  • 使用跨几何图形的通用美学和数据框过滤 ggplot2 的几何图形

    假设我有以下数据框 Dummy data frame df lt data frame x rep 1 5 2 y runif 10 z rep c A B each 5 x y z 1 1 0 92024937 A 2 2 0 37246
  • 使用 python 解压主文件夹中的文件夹内的 gz 文件

    我在多个文件夹中有 gz 压缩文件 这些文件都位于名为 usa 的主文件夹中 我能够使用下面的代码提取单个文件 import gzip import shutil source r C usauc300 dbf gz output r C
  • Schedulers.io() 上的并行数据库搜索

    我想知道当我并行访问数据库表时是否应该使用 Schedulers io 还是 Schedulers newThread 例如 如果我使用 Schedulers io 并行地从数千个表中选择记录 则任务完成后会在线程池中创建很多新创建的线程