我有一个使用 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/