亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

讀取模塊結束,當前的代碼

package?main

import?(
???"fmt"
???"strings"
???"time"
???"os"
???"bufio"
???"io"
)
//?interface
type?Reader?interface?{
???Read(rc?chan?string)
}

type?Writer?interface?{
???Write(wc?chan?string)
}

type?LogProcess?struct?{
???rc??chan?string???//?in?file?get?message
???wc??chan?string???//?out?message?in?writer
????read?Reader
????write?Writer
}

func?(l?*LogProcess)?Process()??{
???for?v?:=?range?l.rc?{
??????l.wc?<-?strings.ToUpper(string(v))
???}
}
type?ReadFromFile?struct?{
???path??????????string????//?file?storage?path
}
/*
???1.?讀取模塊
??????a.?打開文件
??????b.?從文件?末尾?開始逐行讀取
?*/
func?(r?*ReadFromFile)?Read(rc?chan?string){
???//?line?:=?"string?in?message"

???file,?err?:=?os.Open(r.path)
???if?err?!=?nil?{
??????panic(fmt.Sprintf("open?file?error:?%s",?err.Error()))
???}
???defer?file.Close()

???//?從文件末尾開始逐行讀取
???file.Seek(0,?2)
???rd?:=?bufio.NewReader(file)

???for?{
??????//?why?is?not?use?method?rd.ReadString()
??????line,?err?:=?rd.ReadString('\n')
??????if?err?!=?nil?{
?????????if?err?==?io.EOF?{
????????????time.Sleep(500?*?time.Microsecond)
????????????continue
?????????}
?????????panic(fmt.Sprintf("ReadString?error:?%s",?err.Error()))
??????}
??????//rc?<-?line[:len(line)-1]
??????rc?<-?strings.TrimSpace(line)
???}

}

type?WriterToinfluxDB?struct?{
???influxDBDsn???string????//?influxDB?dsn
}

func?(w?*WriterToinfluxDB)?Write(wc?chan?string)?{

???for?v?:=?range?wc?{
??????fmt.Println(v)
???}
}



func?main()?{
???r?:=?&ReadFromFile{
??????path:?"/tmp/access.log",
???}

???w?:=?&WriterToinfluxDB{
??????influxDBDsn:?"username$password",
???}

???lp?:=?&LogProcess{
??????rc:?make(chan?string),
??????wc:?make(chan?string),
??????read:?r,
??????write:?w,
???}

???go?lp.read.Read(lp.rc)
???go?lp.Process()
???go?lp.write.Write(lp.wc)


???time.Sleep(?30?*?time.Second)

}


正在回答

1 回答

嘎哈哈哈哈哈哈哈哈

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Go并發編程案例解析
  • 參與學習       15263    人
  • 解答問題       56    個

課程帶你通過一個真實的線上日志監控系統學習Golang以及并發的編程思想。

進入課程

讀取模塊結束,當前的代碼

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號