7

デフォルトでは、Akka は を受け取るとアクター システムをシャットダウンしますSIGTERM。akka システムをシャットダウンする前に、この動作をオーバーライドしてカスタム シャットダウン ロジックを実行するにはどうすればよいですか? 特別なグレースフル ストップ メッセージを使用して、アクターにこのロジックを既に実装しています。受信時にそのロジックを呼び出すだけですSIGTERM

または、アプリケーションをシャットダウンする他の方法を使用する必要がありますか? それも一つの選択肢です。

4

2 に答える 2

1

sys.shutdownHookThread次のように使用できます。

def main(args: Array[String]) {
  ... initialization code ...
  sys.shutdownHookThread {
    println "Shutting down ..."
    shutdownHandler ! DoSomething
  }
}
于 2013-02-22T14:18:10.660 に答える
0

これは合うでしょうか: http://doc.akka.io/api/akka/2.1.0/#akka.actor.ActorSystem

抽象的なデフ
registerOnTermination(コード: Runnable): ユニット
ActorSystem.shutdown が発行され、このアクター システム内のすべてのアクターが停止された後に実行するコード ブロック (コールバック) を登録します。このメソッドを複数回呼び出すことで、複数のコードブロックを登録できます。コールバックは、登録とは逆の順序で順次実行されます。つまり、最後の登録が最初に実行されます。
スローされた例外
a
システムがすでにシャットダウンされている場合、またはシャットダウンが開始されている場合は RejectedExecutionException。


抽象的なデフ
registerOnTermination[T](コード: ⇒ T): 単位
ActorSystem.shutdown が発行され、このアクター システム内のすべてのアクターが停止された後に実行するコード ブロック (コールバック) を登録します。このメソッドを複数回呼び出すことで、複数のコードブロックを登録できます。コールバックは、登録とは逆の順序で順次実行されます。つまり、最後の登録が最初に実行されます。
スローされた例外
a
システムがすでにシャットダウンされている場合、またはシャットダウンが開始されている場合は RejectedExecutionException。


于 2013-02-23T12:49:57.277 に答える