默认情况下,Akka 在收到SIGTERM
. 如何在关闭 akka 系统之前覆盖此行为以执行我的自定义关闭逻辑?我已经在演员中实现了这个逻辑,使用特殊的优雅停止消息 - 我只需要在SIGTERM
收到时调用该逻辑。
还是我必须使用其他方式关闭应用程序?这也是一种选择。
默认情况下,Akka 在收到SIGTERM
. 如何在关闭 akka 系统之前覆盖此行为以执行我的自定义关闭逻辑?我已经在演员中实现了这个逻辑,使用特殊的优雅停止消息 - 我只需要在SIGTERM
收到时调用该逻辑。
还是我必须使用其他方式关闭应用程序?这也是一种选择。
你可以sys.shutdownHookThread
像这样使用:
def main(args: Array[String]) {
... initialization code ...
sys.shutdownHookThread {
println "Shutting down ..."
shutdownHandler ! DoSomething
}
}
这适合吗: http: //doc.akka.io/api/akka/2.1.0/#akka.actor.ActorSystem
抽象定义 registerOnTermination(代码:Runnable):单位 注册一个代码块(回调)以在 ActorSystem.shutdown 发出并且该actor系统中的所有actor都停止后运行。多次调用该方法可以注册多个代码块。回调将按注册的相反顺序依次运行,即最后一次注册首先运行。 抛出的异常 一个 如果系统已关闭或已启动关闭,则出现 RejectedExecutionException。 抽象定义 registerOnTermination[T](代码:⇒ T):单位 注册一个代码块(回调)以在 ActorSystem.shutdown 发出并且该actor系统中的所有actor都停止后运行。多次调用该方法可以注册多个代码块。回调将按注册的相反顺序依次运行,即最后一次注册首先运行。 抛出的异常 一个 如果系统已关闭或已启动关闭,则出现 RejectedExecutionException。