【问题标题】:Restart the go application when the error报错时重启go应用
【发布时间】:2014-12-17 10:10:54
【问题描述】:

我有一个全天 24 小时运行的 go 应用程序。有没有人有一个单独的应用程序来查找主应用程序是否正在运行的想法?如果主应用程序有错误,附加应用程序应关闭主应用程序并重新运行主应用程序。或者也许有一些析构函数的风格,它可能是主要的应用程序?

【问题讨论】:

标签: go restart application-restart


【解决方案1】:

如果返回errors,您的应用程序的任务是正确处理它们并重新启动相应的部分。在panics 的情况下变得更加困难。这里 Go 提供recover。这就像catch 的异常。

https://github.com/tideland/goas 中,我提供了loop,一个以受控方式运行goroutine 的包。除了能够停止 goroutine 和/或检索错误值以防它死亡的传统方法之外,您还可以使用 GoRecoverable 启动 goroutine。它提供了一种方法来传递一个在发生恐慌时调用的函数,并且还知道计数和频率。因此它可以采取行动或决定一个 goroutine 是否应该继续工作(例如,通过重置/重新初始化那些被故障覆盖的代码部分)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2018-03-28
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多