From 4a7367a869ef12375ea6678ca44e102b8919c624 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 12 一月 2022 16:53:42 +0800
Subject: [PATCH] 极光推送完善(推送通知与透传消息)

---
 service-push/src/main/java/com/ks/push/manager/PushManager.java |  103 ++++++++++++++++++++++++++-------------------------
 1 files changed, 53 insertions(+), 50 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 f47a50a..3d8f061 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
@@ -89,62 +89,65 @@
         }
 
 
-        logger.info("寮�濮嬪惎鍔ㄦ帹閫�#taskId:{}", task.getId());
-        updateState(taskId, BPushTask.STATE_PUSHING, null);
-        boolean hasDevice = false;
+        try {
+            logger.info("寮�濮嬪惎鍔ㄦ帹閫�#taskId:{}", task.getId());
+            updateState(taskId, BPushTask.STATE_PUSHING, null);
+            boolean hasDevice = false;
 
-        // 鏌ヨ鍙帹閫佺殑骞冲彴
-        List<BPushPlatformAppInfo> list = bPushPlatformAppInfoManager.listByAppCode(task.getAppCode());
+            // 鏌ヨ鍙帹閫佺殑骞冲彴
+            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());
+            //鍏堝垵濮嬪寲鎺ㄩ�佺粨鏋滄暟鎹暟鎹�
+            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);
                 }
-                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, "娌℃湁婊¤冻鏉′欢鐨勫彲鎺ㄩ�佽澶�");
+            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, "娌℃湁婊¤冻鏉′欢鐨勫彲鎺ㄩ�佽澶�");
+            }
+        } finally {
+            redisTemplate.delete(key);
         }
         //娌℃湁鍙帹閫佺殑璁惧
         logger.info("鍚姩鎺ㄩ�佺粨鏉�#taskId:{}", task.getId());

--
Gitblit v1.8.0