gpt4 book ai didi

go - 你如何优雅地退出 go uber fx 应用程序

转载 作者:行者123 更新时间:2023-12-02 02:24:48 55 4
gpt4 key购买 nike

如何像关闭整个程序一样停止 uber fx。好像除了ctrl+c没有别的办法

func main() {
fx.New(
fx.Invoke(register)
).Run
}


func register() {
time.Sleep(5*time.Seconds)
// shutdown somehow
}

最佳答案

docs不是特别清楚,但是有一个 Shutdowner 接口(interface)可用于任何具有 Shutdown 方法的 Fx 模块,该方法请求正常关闭应用程序。

这是 the example package 的修改部分它将在收到请求后简单地关闭:

func NewHandler(logger *log.Logger, shutdowner fx.Shutdowner) (http.Handler, error) {
logger.Print("Executing NewHandler.")
return http.HandlerFunc(func(http.ResponseWriter, *http.Request) {
logger.Print("Got a request. Requesting shutdown now that I've gotten one request.")
shutdowner.Shutdown()
}), nil
}

编辑:以下是您可以如何修改您的解决方案:

func register(shutdowner fx.Shutdowner) {
time.Sleep(5*time.Seconds)
shutdowner.Shutdown()
}

关于go - 你如何优雅地退出 go uber fx 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65857064/

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