浏览代码

rick user filter

丁云鹏 4 月之前
父节点
当前提交
cf041d1230

+ 23 - 9
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/xxl/RickUserCacheJob.java

@@ -8,14 +8,17 @@ import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xxl.job.core.log.XxlJobLogger;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.dao.DataAccessException;
+import org.springframework.data.redis.core.*;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 /**
  * @author sunxy
@@ -40,18 +43,29 @@ public class RickUserCacheJob {
         }
         List<String> uids = pairs.getLeft();
         if (CollectionUtils.isNotEmpty(uids)) {
-            redisTemplate.delete(RedisKeyConstants.Recommend.riskUserUid);
-            redisTemplate.opsForSet().add(RedisKeyConstants.Recommend.riskUserUid,
-                    uids.toArray(new String[uids.size()]));
+            redisTemplate.executePipelined(new SessionCallback<String>() {
+                @Override
+                public <K, V> String execute(RedisOperations<K, V> redisOperations) throws DataAccessException {
+                    redisOperations.delete((K) RedisKeyConstants.Recommend.riskUserUid);
+                    ((SetOperations<String, String>)redisOperations.opsForSet()).add(RedisKeyConstants.Recommend.riskUserUid,
+                            uids.toArray(new java.lang.String[uids.size()]));
+                    return null;
+                }
+            });
         }
 
-        List<String> mids = pairs.getLeft();
+        List<String> mids = pairs.getRight();
         if (CollectionUtils.isNotEmpty(mids)) {
-            redisTemplate.delete(RedisKeyConstants.Recommend.riskUserMid);
-            redisTemplate.opsForSet().add(RedisKeyConstants.Recommend.riskUserMid,
-                    mids.toArray(new String[uids.size()]));
+            redisTemplate.executePipelined(new SessionCallback<String>() {
+                @Override
+                public <K, V> String execute(RedisOperations<K, V> redisOperations) throws DataAccessException {
+                    redisOperations.delete((K) RedisKeyConstants.Recommend.riskUserMid);
+                    ((SetOperations<String, String>)redisOperations.opsForSet()).add(RedisKeyConstants.Recommend.riskUserUid,
+                            mids.toArray(new java.lang.String[mids.size()]));
+                    return null;
+                }
+            });
         }
-
         XxlJobLogger.log("upldateRiskUserCache finish");
         return ReturnT.SUCCESS;
     }