From a2c56bd6b79d2b8ca2c4c44a254ad2958fb72bca Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 17 九月 2021 15:21:45 +0800
Subject: [PATCH] 推送服务完善

---
 service-push/src/main/java/com/ks/push/manager/PushManager.java |  110 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 56 insertions(+), 54 deletions(-)

diff --git a/service-push/src/main/java/com/ks/push/manager/PushManager.java b/service-push/src/main/java/com/ks/push/manager/PushManager.java
index 2c8b010..f47a50a 100644
--- a/service-push/src/main/java/com/ks/push/manager/PushManager.java
+++ b/service-push/src/main/java/com/ks/push/manager/PushManager.java
@@ -36,10 +36,10 @@
     private BPushPlatformAppInfoManager bPushPlatformAppInfoManager;
 
     @Resource
-    private RedisTemplate<String, Object> redisTemplate;
+    private PushExcuteResultManager pushExcuteResultManager;
 
     @Resource
-    private PushExcuteResultManager pushExcuteResultManager;
+    private RedisTemplate redisTemplate;
 
 
     /**
@@ -81,70 +81,72 @@
         }
 
         String key = "task-" + taskId;
-        if (!redisTemplate.opsForValue().setIfAbsent(key, "1", 5 * 60, TimeUnit.SECONDS)) {
+
+        Boolean s = redisTemplate.opsForValue().setIfAbsent(key, "1", 5 * 60, TimeUnit.SECONDS);
+
+        if (s == null || !s) {
             throw new BPushTaskException(BPushTaskException.CODE_BUSY, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�");
         }
+
+
         logger.info("寮�濮嬪惎鍔ㄦ帹閫�#taskId:{}", task.getId());
         updateState(taskId, BPushTask.STATE_PUSHING, null);
         boolean hasDevice = false;
-        try {
-            // 鏌ヨ鍙帹閫佺殑骞冲彴
-            List<BPushPlatformAppInfo> list = bPushPlatformAppInfoManager.listByAppCode(task.getAppCode());
 
-            //鍏堝垵濮嬪寲鎺ㄩ�佺粨鏋滄暟鎹暟鎹�
-            List<BPushTaskExcuteResult> resultList = new ArrayList<>();
-            Map<String, Long> resultCountMap = new HashMap<>();
-            for (BPushPlatformAppInfo appInfo : list) {
-                long count = pushDeviceTokenManager.count(task.getAppCode(), appInfo.getPlatform(), task.getFilter());
-                if (count > 0) {
-                    hasDevice = true;
-                    //鍒濆鍖栨帹閫佺粨鏋滄暟鎹�
-                    BPushTaskExcuteResult result = pushExcuteResultManager.initPushExcuteResult(taskId, appInfo.getPlatform(), count);
-                    resultCountMap.put(result.getId(), count);
-                    resultList.add(result);
-                }
+        // 鏌ヨ鍙帹閫佺殑骞冲彴
+        List<BPushPlatformAppInfo> list = bPushPlatformAppInfoManager.listByAppCode(task.getAppCode());
+
+        //鍏堝垵濮嬪寲鎺ㄩ�佺粨鏋滄暟鎹暟鎹�
+        List<BPushTaskExcuteResult> resultList = new ArrayList<>();
+        Map<String, Long> resultCountMap = new HashMap<>();
+        for (BPushPlatformAppInfo appInfo : list) {
+            long count = pushDeviceTokenManager.count(task.getAppCode(), appInfo.getPlatform(), task.getFilter());
+            if (count > 0) {
+                hasDevice = true;
+                //鍒濆鍖栨帹閫佺粨鏋滄暟鎹�
+                BPushTaskExcuteResult result = pushExcuteResultManager.initPushExcuteResult(taskId, appInfo.getPlatform(), count);
+                resultCountMap.put(result.getId(), count);
+                resultList.add(result);
             }
-
-
-            for (BPushTaskExcuteResult result : resultList) {
-                long count = resultCountMap.get(result.getId());
-                int pageSize = 500;
-                int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
-                long totalValidCount = 0L;
-
-                //鍒濆鍖栨壒閲忔帹閫佺殑璁℃暟
-                for (int page = 0; page < totalPage; page++) {
-                    pushExcuteResultManager.startBatchPush(taskId, result.getPushPlatform(), page + "");
-                }
-
-                for (int page = 0; page < totalPage; page++) {
-                    List<BPushDeviceToken> deviceTokenList = pushDeviceTokenManager.list(task.getAppCode(), result.getPushPlatform(), task.getFilter(), page + 1, pageSize);
-
-                    List<String> tokenList = new ArrayList<>();
-                    for (BPushDeviceToken deviceToken : deviceTokenList) {
-                        //TODO 鏃堕棿鍒ゆ柇
-                        tokenList.add(deviceToken.getToken());
-                    }
-                    totalValidCount += tokenList.size();
-                    BPushDeviceDataSet dataSet = new BPushDeviceDataSet(tokenList, page + "", taskId);
-                    //鏈�鍚庝竴椤�
-                    if (page == totalPage - 1 && totalValidCount != count) {
-                        //淇敼鎬绘暟
-                        pushExcuteResultManager.setDeviceCount(result.getId(), totalValidCount);
-                    }
-                    CMQManager.getInstance().addToPushQueue(result.getPushPlatform(), dataSet);
-                }
-                logger.info("鍔犲叆鎺ㄩ�侀槦鍒�#浠诲姟Id:{}#骞冲彴:{}#鎺ㄩ�佹暟閲�:{}", task.getId(), result.getPushPlatform().name(), count);
-            }
-        } finally {
-            redisTemplate.delete(key);
         }
 
-        //娌℃湁鍙帹閫佺殑璁惧
+
+        for (BPushTaskExcuteResult result : resultList) {
+            long count = resultCountMap.get(result.getId());
+            int pageSize = 500;
+            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
+            long totalValidCount = 0L;
+
+            //鍒濆鍖栨壒閲忔帹閫佺殑璁℃暟
+            for (int page = 0; page < totalPage; page++) {
+                pushExcuteResultManager.startBatchPush(taskId, result.getPushPlatform(), page + "");
+            }
+
+            for (int page = 0; page < totalPage; page++) {
+                List<BPushDeviceToken> deviceTokenList = pushDeviceTokenManager.list(task.getAppCode(), result.getPushPlatform(), task.getFilter(), page + 1, pageSize);
+
+                List<String> tokenList = new ArrayList<>();
+                for (BPushDeviceToken deviceToken : deviceTokenList) {
+                    //TODO 鏃堕棿鍒ゆ柇
+                    tokenList.add(deviceToken.getToken());
+                }
+                totalValidCount += tokenList.size();
+                BPushDeviceDataSet dataSet = new BPushDeviceDataSet(tokenList, page + "", taskId);
+                //鏈�鍚庝竴椤�
+                if (page == totalPage - 1 && totalValidCount != count) {
+                    //淇敼鎬绘暟
+                    pushExcuteResultManager.setDeviceCount(result.getId(), totalValidCount);
+                }
+                CMQManager.getInstance().addToPushQueue(result.getPushPlatform(), dataSet);
+            }
+            logger.info("鍔犲叆鎺ㄩ�侀槦鍒�#浠诲姟Id:{}#骞冲彴:{}#鎺ㄩ�佹暟閲�:{}", task.getId(), result.getPushPlatform().name(), count);
+        }
+
+
         if (!hasDevice) {
             updateState(taskId, BPushTask.STATE_FINSIH, "娌℃湁婊¤冻鏉′欢鐨勫彲鎺ㄩ�佽澶�");
         }
-
+        //娌℃湁鍙帹閫佺殑璁惧
         logger.info("鍚姩鎺ㄩ�佺粨鏉�#taskId:{}", task.getId());
     }
 

--
Gitblit v1.8.0