【问题标题】:How to allow/wait for Akka streams to complete on JVM shutdown?如何允许/等待 Akka 流在 JVM 关闭时完成?
【发布时间】:2021-02-12 04:57:03
【问题描述】:

基本上,我的目标是,当我重新启动正在处理一堆 Akka 流的服务器时,关闭钩子应该等待所有流完成,然后再终止 ActorSystem

我定义了一个 close 方法来终止参与者系统,就像这样 -

def close(): Future[Terminated] = {
    logger.info("Terminating actor system")
    system.terminate()
  }

我从我的 JVM 的关闭挂钩中调用它。

但是,这显然不会等待流完成,而是中止正在运行的流并终止参与者,这并不能解决我想要做的事情。所以,这似乎不对。

此外,我阅读了有关参与者支持自己的关闭挂钩的文档,但我如何配置它们以使流一直运行直到完成,然后才允许 JVM 退出?

【问题讨论】:

标签: scala akka


【解决方案1】:

我们为此使用了一个 killswitch:它允许关闭 actor 流。您仍然需要等到所有流完成后,killswitch 才会启动正确的流关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2015-09-22
    • 2018-12-20
    • 1970-01-01
    相关资源
    最近更新 更多