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 发出并且该actor系统中的所有actor都停止后运行。多次调用该方法可以注册多个代码块。回调将按注册的相反顺序依次运行,即最后一次注册首先运行。
抛出的异常
一个
如果系统已关闭或已启动关闭,则出现 RejectedExecutionException。


抽象定义
registerOnTermination[T](代码:⇒ T):单位
注册一个代码块(回调)以在 ActorSystem.shutdown 发出并且该actor系统中的所有actor都停止后运行。多次调用该方法可以注册多个代码块。回调将按注册的相反顺序依次运行,即最后一次注册首先运行。
抛出的异常
一个
如果系统已关闭或已启动关闭,则出现 RejectedExecutionException。


于 2013-02-23T12:49:57.277 回答