| | |
| | | "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 *CompareList `json:"compareData"` |
| | | } |
| | | |
| | | type CompareResultWrapper struct { |
| | | CompareData *[]*protomsg.SdkCompareEach |
| | | By func(p,q *protomsg.SdkCompareEach) bool |
| | | } |
| | | type CompareList []*protomsg.SdkCompareEach |
| | | |
| | | func (crw CompareResultWrapper) Len()int { |
| | | return len(*crw.CompareData) |
| | | func (s CompareList) Len()int { |
| | | return len(s) |
| | | } |
| | | func (crw CompareResultWrapper) Swap(i,j int) { |
| | | (*crw.CompareData)[i],(*crw.CompareData)[j] = (*crw.CompareData)[j],(*crw.CompareData)[i] |
| | | func (s CompareList) Swap(i,j int) { |
| | | s[i],s[j] = s[j],s[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 (s CompareList) Less(i,j int) bool{//降序排序 |
| | | return s[i].CompareScore > s[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 CompareList |
| | | //resultList :=make([]*protomsg.SdkCompareEach,0) |
| | | for _,str :=range compServerList{ |
| | | reqUrl := "tcp://"+str |
| | | resultB := doCompareRequest(reqUrl,b) |