| | |
| | | "nanomsg.org/go-mangos/protocol/req" |
| | | "nanomsg.org/go-mangos/transport/ipc" |
| | | "nanomsg.org/go-mangos/transport/tcp" |
| | | "sort" |
| | | "sync" |
| | | "webserver/extend/config" |
| | | "webserver/extend/logger" |
| | |
| | | |
| | | type CompareOnce struct { |
| | | CompareNum string `json:"compareOnce"` |
| | | CompareData *[]*protomsg.SdkCompareEach `json:"compareData"` |
| | | CompareData *CompareResultSort `json:"compareData"` |
| | | } |
| | | |
| | | type CompareResultWrapper struct { |
| | | CompareData *[]*protomsg.SdkCompareEach |
| | | By func(p,q *protomsg.SdkCompareEach) bool |
| | | } |
| | | type CompareResultSort []*protomsg.SdkCompareEach |
| | | |
| | | func (crw CompareResultWrapper) Len()int { |
| | | return len(*crw.CompareData) |
| | | func (crw CompareResultSort) Len()int { |
| | | return len(crw) |
| | | } |
| | | func (crw CompareResultWrapper) Swap(i,j int) { |
| | | (*crw.CompareData)[i],(*crw.CompareData)[j] = (*crw.CompareData)[j],(*crw.CompareData)[i] |
| | | func (crw CompareResultSort) Swap(i,j int) { |
| | | crw[i],crw[j] = crw[j],crw[i] |
| | | } |
| | | func (crw CompareResultWrapper) Less(i,j int) bool{ |
| | | return crw.By((*crw.CompareData)[i],(*crw.CompareData)[j]) |
| | | } |
| | | |
| | | func SortByScore(list *[]*protomsg.SdkCompareEach) { |
| | | sort.Sort(CompareResultWrapper{list, func(p, q *protomsg.SdkCompareEach) bool { |
| | | return q.CompareScore < p.CompareScore //递减排序 |
| | | }}) |
| | | func (crw CompareResultSort) Less(i,j int) bool{//降序排序 |
| | | return crw[i].CompareScore > crw[j].CompareScore |
| | | } |
| | | |
| | | var compResultHisM = make(map[string]*CompareOnce,0) |
| | |
| | | compServerList := config.CompServerInfo.Url |
| | | logger.Debug("compServerList:", compServerList) |
| | | //1.向各个compare进程发起请求拿到比对结果 |
| | | resultList :=make([]*protomsg.SdkCompareEach,0) |
| | | var resultList CompareResultSort |
| | | //resultList :=make([]*protomsg.SdkCompareEach,0) |
| | | for _,str :=range compServerList{ |
| | | reqUrl := "tcp://"+str |
| | | resultB := doCompareRequest(reqUrl,b) |