[beego]beego 2.0 graceful 有问题

2024-06-26 436 views
4
2020/12/18 10:29:01.271 [W]  init global config instance failed. If you donot use this, just ignore it.  open conf/app.conf: no such file or directory

./beego2project flag redefined: graceful
panic: ./beego2project flag redefined: graceful

goroutine 1 [running]:
flag.(*FlagSet).Var(0xc000132120, 0x1d428e0, 0x24b160f, 0x1bc108f, 0x8, 0x1bdb0ed, 0x21)
    /usr/local/go/src/flag/flag.go:851 +0x4b8
flag.BoolVar(...)
    /usr/local/go/src/flag/flag.go:630
github.com/beego/beego/v2/server/web/grace.init.0()
    /Users/c/workdir/beego2project/vendor/github.com/beego/beego/v2/server/web/grace/grace.go:93 +0x7a

重新指定另外一个配置路径 比如根目录下配置一个 configs 目录,并且 web.Run() 调用之前, load configs/app.conf 配置,开启 graceful = true 将导致,项目无法启动。 beego2 貌似必须加载 conf/app.conf 作为配置。

回答

1

这个问题很有意思,我们会默认加载conf/app.conf的配置。初看起来是出现了两个graceful为true导致启动失败。

4

可以提供一个可以复现的demo吗?我这边试了一下,目前还有点迷,我需要交叉对比一下你的代码。包括启动命令=。=

3

我这里好像并没有遇到问题,我的目录结构是: image image

9

我已经知道了。问题出在,项目本身同时使用了astaxie/beego 和 beego/beego。我今天混用这两个的时候,复现了这个问题。之后我将所有的astaxie/beego依赖清理掉,就没事了。