| | |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.ks.push.dto.BPushDeviceDataSet; |
| | | import com.ks.push.dto.mq.InvalidDeviceTokenInfo; |
| | | import com.ks.push.pojo.DO.PushPlatform; |
| | | import com.qcloud.cmq.Message; |
| | | import org.slf4j.Logger; |
| | |
| | | */ |
| | | public static String PUSH_MZ = "bpush-mz"; |
| | | |
| | | /** |
| | | * 极光推送队列 |
| | | */ |
| | | public static String PUSH_JPUSH = "bpush-jpush"; |
| | | |
| | | /** |
| | | * 无效设备队列 |
| | | */ |
| | | public static String PUSH_TOKEN_INVALID = "bpush-token-invalid"; |
| | | |
| | | static { |
| | | cmqUtil = CMQUtil.getInstance(secretId, secretKey); |
| | | // 最大消息为1M |
| | |
| | | cmqUtil.createQueue(PUSH_OPPO); |
| | | cmqUtil.createQueue(PUSH_VIVO); |
| | | cmqUtil.createQueue(PUSH_MZ); |
| | | cmqUtil.createQueue(PUSH_JPUSH); |
| | | cmqUtil.createQueue(PUSH_TOKEN_INVALID); |
| | | logger.info("创建队列完毕"); |
| | | } |
| | | |
| | |
| | | queueName = PUSH_VIVO; |
| | | } else if (platform == PushPlatform.mz) { |
| | | queueName = PUSH_MZ; |
| | | }else if (platform == PushPlatform.jpush) { |
| | | queueName = PUSH_JPUSH; |
| | | } |
| | | return queueName; |
| | | } |
| | |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除消息 |
| | | * |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发送无效设备消息 |
| | | * |
| | | * @param info |
| | | */ |
| | | public void addInvalidDevieToken(InvalidDeviceTokenInfo info) { |
| | | if (info == null) { |
| | | return; |
| | | } |
| | | cmqUtil.sendMsg(PUSH_TOKEN_INVALID, new Gson().toJson(info)); |
| | | } |
| | | |
| | | /** |
| | | * 消费无效设备消息 |
| | | * |
| | | * @param count |
| | | */ |
| | | public List<MQMsgConsumeResult> consumeInvalidDeviceTokenQueue(int count) throws Exception { |
| | | List<Message> list = cmqUtil.recieveMsg(count, PUSH_TOKEN_INVALID); |
| | | if (list != null) { |
| | | List<MQMsgConsumeResult> resultList = new ArrayList<>(); |
| | | for (Message msg : list) { |
| | | String result = msg.msgBody; |
| | | InvalidDeviceTokenInfo tokenInfo = new Gson().fromJson(result, InvalidDeviceTokenInfo.class); |
| | | resultList.add(new MQMsgConsumeResult(tokenInfo, PUSH_TOKEN_INVALID, msg.receiptHandle)); |
| | | } |
| | | return resultList; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public static class MQMsgConsumeResult { |
| | | private String queueName; |
| | | private Object data; |