Tomcat 内の ActorSystem 経由で akka 2.1.2 を使用していますが、シャットダウンに問題があります。実際のアクターをシャットダウンする system.shutdown() を呼び出していますが、スケジューラとディスパッチャの 2 つの akka スレッドが残され、Tomcat の停止をブロックしています。
system.scheduler.asInstanceOf[DefaultScheduler].close() を呼び出してスケジューラをシャットダウンすることができました (Scheduler トレイトには close メソッドがないため、キャストが必要です)。ただし、ディスパッチャ スレッドを停止する方法がわかりません。system.dispatcher.shutdown() (保護されたメソッド) を呼び出すことができるように、akka.actor パッケージでオブジェクトを作成する危険な手法を試しましたが、うまくいきませんでした。まだ 1 つ以上の akka ディスパッチャ スレッドがハングしています。その後あたり。
ディスパッチャ スレッドをシャットダウンするにはどうすればよいですか? 機能する限り、理想的/正しい方法である必要はありません。