业务代码中,我们怎么让一段程序,在某个时间段内执行,然后优雅退出?
本文给出一种办法:使用wait.poll
package main
import (
"fmt"
"time"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/klog"
)
func main() {
for {
a := wait.Poll(time.Second, time.Second*5, func() (done bool, err error) {
fmt.Println(time.Now())
return false, nil
})
if a != nil {
klog.Error(a)
break
}
}
}
我们的整个程序包含在for循环中,5s之后超时,a不为空,则退出程序
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。