package com.ks.lucky.util.mq;
|
|
import com.google.gson.Gson;
|
import com.ks.lucky.pojo.DTO.ActivityMQMsg;
|
import com.qcloud.cmq.Message;
|
import org.yeshi.utils.CMQUtil;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
public class CMQManager {
|
|
|
private static String secretId = "AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25";
|
private static String secretKey = "xhCSUHo55oHUQ6XicFcmfIgspX0EEzWo";
|
private static CMQManager cmqManager;
|
private static CMQUtil cmqUtil;
|
public static String QUEUENAME_LUCKY_ACTIVITY = "lucky-activity";
|
|
static {
|
cmqUtil = CMQUtil.getInstance(secretId, secretKey);
|
// 最大消息为1M
|
cmqUtil.createQueue(QUEUENAME_LUCKY_ACTIVITY, 1024 * 1024);
|
}
|
|
public static CMQManager getInstance() {
|
if (cmqManager == null) {
|
cmqManager = new CMQManager();
|
}
|
return cmqManager;
|
}
|
|
|
/**
|
* 添加消息
|
*
|
* @param queueName
|
* @param msg
|
*/
|
public void addMsg(String queueName, String msg) {
|
cmqUtil.sendMsg(queueName, msg);
|
}
|
|
|
/**
|
* 添加活动消息
|
*
|
* @param msg
|
*/
|
public void addActivityMsg(ActivityMQMsg msg) {
|
cmqUtil.sendMsg(QUEUENAME_LUCKY_ACTIVITY, new Gson().toJson(msg));
|
}
|
|
/**
|
* 活动消息消费
|
*
|
* @param count
|
* @return
|
*/
|
public Map<String, ActivityMQMsg> consumeActivityMsg(int count) {
|
List<Message> list = cmqUtil.recieveMsg(count, QUEUENAME_LUCKY_ACTIVITY);
|
if (list == null) {
|
return null;
|
}
|
|
Map<String, ActivityMQMsg> map = new HashMap<>();
|
Gson gson = new Gson();
|
for (Message msg : list) {
|
String result = msg.msgBody;
|
map.put(msg.receiptHandle, gson.fromJson(result, ActivityMQMsg.class));
|
}
|
return map;
|
}
|
|
/**
|
* 删除活动消息
|
*
|
* @param receiptHandle
|
*/
|
public void deleteActivityMsg(String receiptHandle) {
|
cmqUtil.deleteMsg(QUEUENAME_LUCKY_ACTIVITY, receiptHandle);
|
}
|
|
|
}
|