goroutine中channel信道中无数据流入后造成的都塞问题

Krinz · · 204 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
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

入群交流(和以上内容无关):Go中文网 QQ 交流群:798786647 或加微信入微信群:274768166 备注:入群;关注公众号:Go语言中文网

204 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传