出错时重启go应用程序

时间:2014-12-17 10:10:54

标签: go restart application-restart

我有一个24小时运行的应用程序。有没有人知道一个单独的应用程序,查找主应用程序是否正在运行?如果主应用程序有错误,则应关闭主应用程序并重新运行主应用程序。或者也许有一些破坏者的风格,这可能是主要的应用程序?

1 个答案:

答案 0 :(得分:1)

如果返回error,则应用程序的任务是正确处理它们并重新启动相应的部分。在panic s的情况下,它会变得更难。 Go提供recover。这就像catch个例外。

https://github.com/tideland/goas中我提供了loop,一个以受控方式运行goroutines的包。除了能够停止goroutine和/或检索错误值的传统方法,如果它已经死亡,你也可以使用GoRecoverable启动goroutine。它提供了一种方法来传递在遇到恐慌时调用的函数,并且还知道计数和频率。因此,它可以采取行动或决定goroutine是否继续工作(例如,通过重置/重新初始化失败所涵盖的代码部分)。