java - 当使用 UUID 命名时,为 akka actor 定义调度程序

标签 java playframework akka actor dispatcher

我有一个使用 Akka actor 在 java 上构建的 Play 应用程序。最近我遇到了与并行性相关的性能问题。我通过谷歌发现我们可以将自定义/固定调度程序/执行程序分配给 Actor 。在创建 Actor 时,我已经用 Actor 名字附加了唯一的ID来命名 Actor 。

当 Actor 名称附加唯​​一 ID 时,有没有办法指定我的 Actor 使用固定调度程序。

我正在尝试按如下方式更新 application.conf,但没有得到预期的结果。它仍然使用默认调度程序。

我的 Actor 位于 akka://application/user/actor

akka.actor.deployment {
  "/actorName*" {
       dispatcher =  mycustom-dispatcher
  }
}

我使用的引用文献:http://doc.akka.io/docs/akka/2.1.4/java/dispatchers.html#Setting_the_dispatcher_for_an_Actor

最佳答案

是的,您可以明确为您的参与者分配调度程序。

import akka.actor.Props
val myActor =
  context.actorOf(Props[MyActor].withDispatcher("my-dispatcher"), "myactor1")

或java变体:

ActorRef myActor =
  system.actorOf(Props.create(MyUntypedActor.class).withDispatcher("my-dispatcher"),
    "myactor3");

带配置

my-dispatcher {
  executor = "thread-pool-executor"
  type = PinnedDispatcher
}

查看更多akka-docs

关于java - 当使用 UUID 命名时,为 akka actor 定义调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43300379/

相关文章:

java - 在 Comparable 中使用泛型

scala - 有没有办法在 scala js 文件中使用 Play 路由?

playframework - Play 框架 - 在 Scala 模板中使用 Javascript 变量

MongoDB Scala 驱动程序 : what is a best way to return Future when working with Observer callbacks?

scala - 如何使用 Guice in Play 注入(inject)的组件测试 actors!斯卡拉 2.5

java - 将 java 项目转换为 scala 项目 (Intellij)

java - 索引@MultiField spring-data-elasticsearch。国际化目的

scala - Akka http 丢失发件人引用

scala - 询问模式是否适用于 Akka IO Actor ?

Java - 哪种数据库/技术用于大量频繁变化的键值对?