tai, err := tail.TailFile(namepath, tail.Config{
ReOpen:true,
MustExist:true,
Poll:true,
Follow:true,
})
if err != nil {
return err, conn
} go func() {
for true {
select {
case <-ctx.Done():
tai.Cleanup()
return
default:
mak, ok := <-tai.Lines
if !ok {
continue
}
transfer.Client(conns, sip, mak.Text, auth, iden)
}
}
}()
以上程序为实时读取文件中的内容,当内容增加后,会将数据流入mak,但是有些文件的名称是随着时间的变换的更改的,比如中间件的log文件,这个时候tai.lines就造成了堵塞,因为没有数据在流入Lines了,如何有效的退出当前goruntine
有疑问加站长微信联系(非本文作者)