|
@@ -74,7 +74,7 @@ func UtilEsSaveData(sdataid, index string, datas *[]map[string]interface{}) erro
|
|
|
}
|
|
|
|
|
|
// 客户规则
|
|
|
-func UtilEsFind1(tags map[string]interface{}, dataType string) (error, string, int64) {
|
|
|
+func UtilEsFind1(tags map[string]interface{}, dataType, userId string) (error, string, int64) {
|
|
|
defer util.Catch()
|
|
|
sdataid := util.ObjToString(tags["s_dataid"])
|
|
|
esquery := util.ObjToString(tags["s_esquery"])
|
|
@@ -126,9 +126,9 @@ func UtilEsFind1(tags map[string]interface{}, dataType string) (error, string, i
|
|
|
}
|
|
|
// esquery = esquery[:len(esquery)-1] + `,"size":` + fmt.Sprintf("%d", i_maxnum) + `}`
|
|
|
log.Println("esquery", esquery)
|
|
|
- err, counts := searchDataArr(index, esquery, sdataid, i_maxnum, tags, maths)
|
|
|
+ err, counts := searchDataArr(index, esquery, sdataid, userId, i_maxnum, tags, maths)
|
|
|
if counts == 0 && err == nil && index == InterimIndex {
|
|
|
- err, counts = searchDataArr(TotalIndex, esquery, sdataid, i_maxnum, tags, maths)
|
|
|
+ err, counts = searchDataArr(TotalIndex, esquery, sdataid, userId, i_maxnum, tags, maths)
|
|
|
if counts > 0 {
|
|
|
dataTypes = "2"
|
|
|
}
|
|
@@ -136,7 +136,7 @@ func UtilEsFind1(tags map[string]interface{}, dataType string) (error, string, i
|
|
|
return err, dataTypes, counts
|
|
|
}
|
|
|
|
|
|
-func searchDataArr(index, esquery, sdataid string, i_maxnum int64, tags map[string]interface{}, maths []map[string]string) (error, int64) {
|
|
|
+func searchDataArr(index, esquery, sdataid, userId string, i_maxnum int64, tags map[string]interface{}, maths []map[string]string) (error, int64) {
|
|
|
var (
|
|
|
err error
|
|
|
counts = int64(0)
|
|
@@ -160,6 +160,19 @@ func searchDataArr(index, esquery, sdataid string, i_maxnum int64, tags map[stri
|
|
|
for {
|
|
|
listLens := int(redis.LLEN("datag", "jyqyfw_es_query"))
|
|
|
if listLens < 2 {
|
|
|
+ if isExists, _ := redis.Exists("datag", "jyqyfw_es_query_times_"+userId); isExists {
|
|
|
+ qt := redis.GetInt("datag", "jyqyfw_es_query_times_"+userId)
|
|
|
+ if qt > 2 {
|
|
|
+ log.Println("单个账号一分钟内超过3次 ", qt)
|
|
|
+ err = errors.New("系统繁忙,请稍后再试")
|
|
|
+ break
|
|
|
+ } else {
|
|
|
+ redis.Incr("datag", "jyqyfw_es_query_times_"+userId)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ redis.Put("datag", "jyqyfw_es_query_times_"+userId, 1, 60)
|
|
|
+ }
|
|
|
+ log.Println("es空闲,当前进程数 ", listLens)
|
|
|
redis.RPUSH("datag", "jyqyfw_es_query", 1)
|
|
|
err, counts = searchData(index, esquery, sdataid, i_maxnum, tags, maths)
|
|
|
redis.LPOP("datag", "jyqyfw_es_query")
|