gpt4 book ai didi

scala - 处理容器停止/重新加载事件

转载 作者:行者123 更新时间:2023-12-04 16:48:38 26 4
gpt4 key购买 nike

一个在 Boot.scala 中启动 ssh 守护进程的提升应用程序。
这是问题:当我运行时 container:restart /在 sbt session 中,我收到 Address alread in use 异常。
现在两个问题:

  • 在 Boot.scala 中启动依赖服务是否正确?
  • 无论如何如何处理容器:停止事件?
  • 最佳答案

    我认为 Lift-y 的方法是使用 LiftRules.unloadHooks .

    它没有详细记录(AFAIK),但是如果您查看 Lift 源代码,您会看到当 LiftServlet destroy() ed,在 LiftRules.unloadHooks 中定义的函数被执行。

    您可以向 unloadHooks 添加函数 RulesSeq appendprepend方法,取决于您希望它们以何种顺序执行。因此,在您的 bootstrap.liftweb.Boot.boot 中方法,你可能会做这样的事情:

    sshDaemon.start()
    LiftRules.unloadHooks.append( () => sshDaemon.stop() )

    (假设这就是您启动和停止 SSH 守护进程的方式。)

    我不是 100% 确定 LiftServlet.destroy()当 sbt 网络插件的 container:restart 时调用方法命令运行 - 这由插件及其与 Jetty 的交互决定,而不是由 Lift - 而是 container:stop命令绝对可以解决问题。

    关于scala - 处理容器停止/重新加载事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056102/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com