我正在尝试有条件地重启heroku服务器。所以我写了以下重启heroku服务器的代码
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))
}()但它第一次成功重启,从第二次开始,它就不再重启了。有没有其他方法可以重启,或者我做错了什么?
发布于 2020-10-26 19:46:51
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.
https://stackoverflow.com/questions/64532726
复制相似问题