查看我的日志文件,我看到同一个actor的不同调度程序。那个演员是一次创造的,怎么会这样呢?是否意味着演员因撞车而重新启动? 例如:
[错误] [08/07/2017 19:20:22.618] [我-SYS-akka.actor.default-调度-21] [akka://my-sys/user/com.domain.FooActor] some_exception
[错误] [08/07/2017 19:20:22.619] [我-SYS-akka.actor.default-调度-26] [akka://my-sys/user/com.domain.FooActor] some_exception
[错误] [08/07/2017 19:20:22.619] [我-SYS-akka.actor.default-调度-27] [akka://my-sys/user/com.domain.FooActor] some_exception
答案 0 :(得分:0)
我很确定您的记录器配置为记录生成日志的线程。检查你的记录器配置,但我想在第三个位置,你记录线程(上面日志中的线程名称:Buyer
)。
调度程序将安排您的任务在线程池上运行。根据定义,池可以有多个线程,通过日志,您可以看到您的actor的执行是在属于单个调度程序的不同线程上进行调度。
使用给定的日志,没有明确指示您的actor崩溃/重新启动,只是表明它(或其主管)在不同线程上运行时调用了日志方法(即my-sys-akka.actor.default-dispatcher-XX
)。这是预期的,因为多个(可能是数百万)个actor意味着共享几个线程(在默认调度程序的情况下取决于CPU,核心的数量......)。
你不应该指望你的演员总是在同一个线程上运行。
玩家无法在另一个调度程序上运行(除非您以这种方式明确配置它)。