Bläddra i källkod

修复空循环的bug

blue 2 år sedan
förälder
incheckning
ae052321c5

+ 0 - 1
im-client/src/main/java/com/bx/imclient/listener/MessageListenerMulticaster.java

@@ -27,7 +27,6 @@ public class MessageListenerMulticaster {
         for(MessageListener listener:messageListeners){
             IMListener annotation = listener.getClass().getAnnotation(IMListener.class);
             if(annotation!=null && (annotation.type().equals(IMListenerType.ALL) || annotation.type().equals(listenerType))){
-
                 results.forEach(result->{
                     // 将data转回对象类型
                     if(result.getData() instanceof JSONObject){

+ 2 - 2
im-client/src/main/java/com/bx/imclient/task/GroupMessageResultResultTask.java

@@ -40,13 +40,13 @@ public class GroupMessageResultResultTask extends AbstractMessageResultTask {
             if(!results.isEmpty()){
                 listenerMulticaster.multicast(IMListenerType.GROUP_MESSAGE, results);
             }
-        } while (results.size() < batchSize);
+        } while (results.size() >= batchSize);
     }
 
     List<IMSendResult> loadBatch() {
         String key = StrUtil.join(":", IMRedisKey.IM_RESULT_GROUP_QUEUE, appName);
         //这个接口redis6.2以上才支持
-        //List<Object> list = redisTemplate.opsForList().leftPop(key, 100);
+        //List<Object> list = redisTemplate.opsForList().leftPop(key, batchSize);
         List<IMSendResult> results = new LinkedList<>();
         JSONObject jsonObject = (JSONObject) redisTemplate.opsForList().leftPop(key);
         while (!Objects.isNull(jsonObject) && results.size() < batchSize) {

+ 2 - 2
im-client/src/main/java/com/bx/imclient/task/PrivateMessageResultResultTask.java

@@ -41,13 +41,13 @@ public class PrivateMessageResultResultTask extends AbstractMessageResultTask {
             if(!results.isEmpty()){
                 listenerMulticaster.multicast(IMListenerType.PRIVATE_MESSAGE, results);
             }
-        } while (results.size() < batchSize);
+        } while (results.size() >= batchSize);
     }
 
     List<IMSendResult> loadBatch() {
         String key = StrUtil.join(":", IMRedisKey.IM_RESULT_PRIVATE_QUEUE, appName);
         //这个接口redis6.2以上才支持
-        //List<Object> list = redisTemplate.opsForList().leftPop(key, 100);
+        //List<Object> list = redisTemplate.opsForList().leftPop(key, batchSize);
         List<IMSendResult> results = new LinkedList<>();
         JSONObject jsonObject = (JSONObject) redisTemplate.opsForList().leftPop(key);
         while (!Objects.isNull(jsonObject) && results.size() < batchSize) {