Showing
5 changed files
with
14 additions
and
10 deletions
@@ -29,11 +29,11 @@ public abstract class AbstractCacheRequestResponseComponent<K extends ICacheRequ | @@ -29,11 +29,11 @@ public abstract class AbstractCacheRequestResponseComponent<K extends ICacheRequ | ||
29 | * @param useEhCache | 29 | * @param useEhCache |
30 | * @return | 30 | * @return |
31 | */ | 31 | */ |
32 | - public void bacthFillResponseWithCache(final List<T> requests, boolean useEhCache) { | 32 | + public void bacthFillResponseWithCache(final List<T> requests, boolean useEhCache,int maxMissRequestCount){ |
33 | //1、批量从缓存中获取 | 33 | //1、批量从缓存中获取 |
34 | this.batchFillResponseFromCache(requests, useEhCache); | 34 | this.batchFillResponseFromCache(requests, useEhCache); |
35 | //2、获取未命中缓存的请求 | 35 | //2、获取未命中缓存的请求 |
36 | - List<T> missCacheRequests = this.filterMissCacheRequests(requests); | 36 | + List<T> missCacheRequests = this.filterMissCacheRequests(requests,maxMissRequestCount); |
37 | //3、如果remainRequests为空,则说明全部命中了缓存,直接返回即可 | 37 | //3、如果remainRequests为空,则说明全部命中了缓存,直接返回即可 |
38 | if (missCacheRequests.isEmpty()) { | 38 | if (missCacheRequests.isEmpty()) { |
39 | return ; | 39 | return ; |
@@ -77,12 +77,15 @@ public abstract class AbstractCacheRequestResponseComponent<K extends ICacheRequ | @@ -77,12 +77,15 @@ public abstract class AbstractCacheRequestResponseComponent<K extends ICacheRequ | ||
77 | * @param cacheRequestResponses | 77 | * @param cacheRequestResponses |
78 | * @return | 78 | * @return |
79 | */ | 79 | */ |
80 | - private List<T> filterMissCacheRequests(List<T> cacheRequestResponses) { | 80 | + private List<T> filterMissCacheRequests(List<T> cacheRequestResponses,int maxMissRequestCount) { |
81 | List<T> notCachedRequests = new ArrayList<>(); | 81 | List<T> notCachedRequests = new ArrayList<>(); |
82 | for (T requestResponse : cacheRequestResponses) { | 82 | for (T requestResponse : cacheRequestResponses) { |
83 | if (requestResponse != null && requestResponse.getResponse() == null) { | 83 | if (requestResponse != null && requestResponse.getResponse() == null) { |
84 | notCachedRequests.add(requestResponse); | 84 | notCachedRequests.add(requestResponse); |
85 | } | 85 | } |
86 | + if(notCachedRequests.size()>=maxMissRequestCount){ | ||
87 | + break; | ||
88 | + } | ||
86 | } | 89 | } |
87 | return notCachedRequests; | 90 | return notCachedRequests; |
88 | } | 91 | } |
@@ -55,7 +55,7 @@ public class CacheQuerySknInfoProductInfoBean extends AbstractCacheRequestRespon | @@ -55,7 +55,7 @@ public class CacheQuerySknInfoProductInfoBean extends AbstractCacheRequestRespon | ||
55 | requests.add(new CacheQuerySknInfoProductInfo(new QuerySknInfo(productSkn))); | 55 | requests.add(new CacheQuerySknInfoProductInfo(new QuerySknInfo(productSkn))); |
56 | } | 56 | } |
57 | //2、调父类方法 | 57 | //2、调父类方法 |
58 | - this.bacthFillResponseWithCache(requests,true); | 58 | + this.bacthFillResponseWithCache(requests,true,productSkns.size()); |
59 | 59 | ||
60 | //3、返回结果 | 60 | //3、返回结果 |
61 | return requests; | 61 | return requests; |
@@ -37,7 +37,7 @@ public class CacheRecallRequestRecallResponseBean extends AbstractCacheRequestRe | @@ -37,7 +37,7 @@ public class CacheRecallRequestRecallResponseBean extends AbstractCacheRequestRe | ||
37 | results.add(new CacheRecallRequestRecallResponse(request)); | 37 | results.add(new CacheRecallRequestRecallResponse(request)); |
38 | } | 38 | } |
39 | //2、执行查询 | 39 | //2、执行查询 |
40 | - this.bacthFillResponseWithCache(results,false); | 40 | + this.bacthFillResponseWithCache(results,false,10); |
41 | 41 | ||
42 | //3、返回结果 | 42 | //3、返回结果 |
43 | return results; | 43 | return results; |
@@ -49,10 +49,6 @@ public class CacheRecallRequestRecallResponseBean extends AbstractCacheRequestRe | @@ -49,10 +49,6 @@ public class CacheRecallRequestRecallResponseBean extends AbstractCacheRequestRe | ||
49 | List<SearchParam> searchParams = new ArrayList<>(); | 49 | List<SearchParam> searchParams = new ArrayList<>(); |
50 | for (CacheRecallRequestRecallResponse requestResponse : missCacheRequests) { | 50 | for (CacheRecallRequestRecallResponse requestResponse : missCacheRequests) { |
51 | searchParams.add(requestResponse.getRequest().searchParam()); | 51 | searchParams.add(requestResponse.getRequest().searchParam()); |
52 | - //控制每次请求es的数量 | ||
53 | - if(searchParams.size()>=maxEsRequestCountPerTime){ | ||
54 | - break; | ||
55 | - } | ||
56 | } | 52 | } |
57 | //2、执行搜索 | 53 | //2、执行搜索 |
58 | List<SearchResult> searchResults = searchCommonService.doMutiSearch(ISearchConstants.INDEX_NAME_PRODUCT_INDEX, searchParams); | 54 | List<SearchResult> searchResults = searchCommonService.doMutiSearch(ISearchConstants.INDEX_NAME_PRODUCT_INDEX, searchParams); |
@@ -48,7 +48,7 @@ public class CacheRecallSknParamsRecallSknListBean extends AbstractCacheRequestR | @@ -48,7 +48,7 @@ public class CacheRecallSknParamsRecallSknListBean extends AbstractCacheRequestR | ||
48 | requests.add(new CacheRecallSknParamsRecallSknList(recallSknParams)); | 48 | requests.add(new CacheRecallSknParamsRecallSknList(recallSknParams)); |
49 | 49 | ||
50 | //2、执行父类方法 | 50 | //2、执行父类方法 |
51 | - this.bacthFillResponseWithCache(requests,false); | 51 | + this.bacthFillResponseWithCache(requests,false,1); |
52 | 52 | ||
53 | //3、判断 | 53 | //3、判断 |
54 | if(requests.size()==1 && requests.get(0).getResponse()!=null){ | 54 | if(requests.size()==1 && requests.get(0).getResponse()!=null){ |
1 | package com.yoho.search.recall.scene.constants; | 1 | package com.yoho.search.recall.scene.constants; |
2 | 2 | ||
3 | + | ||
4 | +/** | ||
5 | + * 缓存时间定义-单位秒 | ||
6 | + */ | ||
3 | public class CacheTimeConstants { | 7 | public class CacheTimeConstants { |
4 | 8 | ||
9 | + | ||
5 | public static final int COMMON = 10 * 60;//通用缓存 | 10 | public static final int COMMON = 10 * 60;//通用缓存 |
6 | 11 | ||
7 | public static final int BRAND_HEATVALUE = 1 * 60 * 60;//人气缓存 | 12 | public static final int BRAND_HEATVALUE = 1 * 60 * 60;//人气缓存 |
-
Please register or login to post a comment