这是一个基于网请求的函数,很巧妙的进行多个连接的检索,如果有一条查询到了那么其他goroutine将会走default字段,以此达到同时连接最多节点的同时达到接收数据的最快化。
个人见解,源码转自网络。
func Query(conns []Conn,query string)Result{
ch := make(chan Result)
for _,conn := range conns {
go func (c Conn){
select {
case ch <- c.DoQuery(query):
default:
}
}(conn)
}
return <- ch
}