[翻译]squbs官网之12 阻塞式调度器

用于阻塞式API调用的阻塞式调度器

本主题不是关于一般的调度器,而是关于squbs特定的调度器配置。请查看Akka 文档中关于调度器的详细信息。

squbs增加了另外一个预定义的调度器用于阻塞式调用时使用。通常,这用于对数据库的异步调用。reference.conf 定义了blocking-dispatcher ,如下所示:

blocking-dispatcher {
  # Dispatcher is the name of the event-based dispatcher
  type = Dispatcher
  # What kind of ExecutionService to use
  executor = "thread-pool-executor"
  thread-pool-executor {
    # Min number of threads to cap factor-based core number to
    core-pool-size-min = 2
    # The core pool size factor is used to determine thread pool core size
    # using the following formula: ceil(available processors * factor).
    # Resulting size is then bounded by the core-pool-size-min and
    # core-pool-size-max values.
    core-pool-size-factor = 3.0
    # Max number of threads to cap factor-based number to
    core-pool-size-max = 24
    # Minimum number of threads to cap factor-based max number to
    # (if using a bounded task queue)
    max-pool-size-min = 2
    # Max no of threads (if using a bounded task queue) is determined by
    # calculating: ceil(available processors * factor)
    max-pool-size-factor  = 3.0
    # Max number of threads to cap factor-based max number to
    # (if using a  bounded task queue)
    max-pool-size-max = 24
  }
  # Throughput defines the maximum number of messages to be
  # processed per actor before the thread jumps to the next actor.
  # Set to 1 for as fair as possible.
  throughput = 2
}

对于要使用阻塞式调度器的actor,仅在actor配置中指定,如下所示:

"/mycube/myactor" {
    dispatcher = blocking-dispatcher
  }

如果没有使用阻塞式调度器的任何actor, 则不会初始化阻塞式调度器, 也不需要任何资源。

警告: 阻塞式调度器只能应用于阻塞式调用, 否则性能可能受到严重影响。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容