首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在golang app中重启heroku服务器?

如何在golang app中重启heroku服务器?
EN

Stack Overflow用户
提问于 2020-10-26 15:05:29
回答 1查看 75关注 0票数 0

我正在尝试有条件地重启heroku服务器。所以我写了以下重启heroku服务器的代码

代码语言:javascript
复制
go func() {
            time.Sleep(10 * time.Second)

            cmd := exec.Command("heroku", "restart")
            b, err := cmd.CombinedOutput()
            if err != nil {
                log.Fatalf("\n======> error restarting server: %v", err)
            }
            fmt.Printf("\n======>  server restart response : %s", string(b))
        }()

但它第一次成功重启,从第二次开始,它就不再重启了。有没有其他方法可以重启,或者我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-10-26 19:46:51

代码语言:javascript
复制
go func() {
    t := time.NewTicker(time.Second * 10)

    for range t.C{
        cmd := exec.Command("sh", "-c","heroku restart")
        var outb, errb bytes.Buffer
        cmd.Stdout = &outb
        cmd.Stderr = &errb
        err := cmd.Run()
        if err != nil {
            log.Fatalf("\n======> error restarting server: %v", err)
        }
        fmt.Printf("\n======>  server restart response : %s, %s", outb.String(), errb.String())
    }
}()

检查https://golang.org/pkg/time/#NewTicker

NewTicker returns a new Ticker containing a channel that will send the time with a period specified by the duration argument. It adjusts the intervals or drops ticks to make up for slow receivers. The duration d must be greater than zero; if not, NewTicker will panic. Stop the ticker to release associated resources.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64532726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档