业务场景:
有A,B,C,D,E 五个协程来并行抓取ws数据, 抓取后的结果result 是:int64类型的值,已知ws的数据推送很快.
现在需要按照A,B,C,D,E的五个result, 来汇总做计算,评率为每隔n秒
我自己ugly的伪代码:
A.go
var aresult int64
func AgetResult(){
for {
// read ws
data := ws.read()
// parse result
aresult = parse(data)
}
}
B.go
var bresult int64
func BgetResult(){
for {
// read ws
data := ws.read()
// parse result
bresult = parse(data)
}
}
如此类推, 然后利用ticker每隔n秒,来拿各个全局变量来汇总计算
但是感觉这种逻辑真的很ugly, 所以想问下更好的思路?
golang 里有个东西叫 channel ……