我想知道如何为时间戳添加时间。目的是能够获得当前时间戳,添加五分钟,然后显示新时间戳。我试图在五分钟后停止输出然后停止docker容器。我这样做是因为我正在运行一个永远不会在容器中停止的进程,我希望它在运行五分钟后停止。
out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true, ShowStderr: true, Follow: true, Until: /* Code Here */})
if err != nil {
panic(err)
}
io.Copy(os.Stdout, out)
if err := cli.ContainerStop(ctx, resp.ID, nil); err != nil {
panic(err)
}
答案 0 :(得分:1)
这是另一个如何在Go中使用Timer的示例。你可以启动你的计时器。设置它time.Minute * 5
然后运行您的长时间运行过程。当计时器滴答时发送退出信号退出程序。使用os.Exit()vs return是很重要的,因为return将退出gorountine而不是程序。
package main
import (
"fmt"
"os"
"time"
)
func main() {
timer := time.NewTimer(time.Second)
go func() {
<-timer.C
fmt.Println("Quiting")
os.Exit(0)
}()
// long running proccess
for {
}
}