我需要使该功能运行,工作,并在一段时间后重新启动。
我试图像这样实现这个功能:
func timeout(t time.Duration, cmd func()) {
c := make(chan bool, 1)
var task = func (){
cmd()
time.Sleep(t)
c <- true
}
go task()
for {
select {
case <-c:
go task()
}
}
}
我请您说出此实现的真实性,如果有更正确/最佳的选项,请举例说明。
也可能有一些库允许您实现此行为以在 CRON 上运行。
简单的执行变得更加容易:
如果您需要更精确的时间表,您可以使用该包
github.com/robfig/cron
: