我在 Tomcat 中通过 ActorSystem 使用 akka 2.1.2,但无法关闭它。我正在调用 system.shutdown() ,它正在关闭实际的参与者,但留下了两个 akka 线程并阻止 Tomcat 停止:调度程序和调度程序。
我通过调用 system.scheduler.asInstanceOf[DefaultScheduler].close() 设法关闭了调度程序(需要强制转换,因为调度程序特征没有关闭方法)。但是,我不知道如何让调度程序线程停止。我尝试了在 akka.actor 包中创建对象的狡猾技术,这样我就可以调用 system.dispatcher.shutdown() (一种受保护的方法),但这不起作用 - 仍然有一个或多个 akka 调度程序线程挂起之后。
如何关闭调度程序线程?只要有效,它就不必是理想/正确的方式。