【问题标题】:Configuring jOOQ to use the Kotlin IO dispatcher配置 jOOQ 以使用 Kotlin IO 调度程序
【发布时间】:2023-02-07 04:59:58
【问题描述】:

jOOQ 中的默认执行器uses the ForkJoinPool common pool by default,或者只有一个 CPU 可用时的普通非托管线程:

由于我使用标准的阻塞 JDBC 驱动程序(而不是像 r2dbc 这样的异步驱动程序),大部分时间 jOOQ 线程都在等待 I/O,建议分配比 ForkJoinPool 公共池提供的线程更多的线程,其默认大小似乎更多地配置为 CPU 密集型工作。

我正在使用 Kotlin 协同程序,最好的方法是将 jOOQ 的执行程序与我的 Kotlin Dispatchers.IO 线程池集成,该线程池有一个 better default configuration for threads 正在执行阻塞 IO。

【问题讨论】:

    标签: kotlin jooq


    【解决方案1】:

    使用 Kotlin,可以使用 asExecutor() 扩展函数将 IO 调度程序作为执行程序获取。因此,配置 jOOQ 以使用它很简单:

    DSL
      .using(
        DefaultConfiguration()
          .set(ExecutorProvider { Dispatchers.IO.asExecutor() })
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 2020-07-26
      相关资源
      最近更新 更多