package com.yeshi.buwan.util.mq;
|
|
import com.qcloud.cmq.Message;
|
import com.yeshi.buwan.dto.mq.CMQConsumeMsg;
|
import com.yeshi.buwan.dto.mq.FunTVAlbum2MQMsg;
|
import com.yeshi.buwan.dto.mq.IqiyiAlbum2MQMsg;
|
import com.yeshi.buwan.dto.mq.SolrVideoMQMsg;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
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_SOLR = "buwan-solr";
|
//视频更新-爱奇艺2
|
public static String QUEUENAME_VIDEO_UPDATE_IQIYI_2 = "buwan-video-update-iqiyi2";
|
//视频更新-风行2
|
public static String QUEUENAME_VIDEO_UPDATE_FUNTV_2 = "buwan-video-update-funtv2";
|
|
//删除视频资源
|
public static String QUEUENAME_VIDEO_RESOURCE_DELETE = "buwan-video-resource-delete";
|
|
|
static {
|
cmqUtil = CMQUtil.getInstance(secretId, secretKey);
|
// 最大消息为1M
|
cmqUtil.createQueue(QUEUENAME_SOLR, 1024 * 1024);
|
cmqUtil.createQueue(QUEUENAME_VIDEO_UPDATE_IQIYI_2, 1024 * 1024);
|
cmqUtil.createQueue(QUEUENAME_VIDEO_UPDATE_FUNTV_2, 1024 * 1024);
|
cmqUtil.createQueue(QUEUENAME_VIDEO_RESOURCE_DELETE, 1024 * 1024);
|
}
|
|
public static CMQManager getInstance() {
|
if (cmqManager == null)
|
cmqManager = new CMQManager();
|
return cmqManager;
|
}
|
|
|
//添加专辑更新消息
|
public void addIqiyiAlbumUpdateMsg(Long id) {
|
cmqUtil.sendMsg(QUEUENAME_VIDEO_UPDATE_IQIYI_2, id + "");
|
}
|
|
//消费专辑更新消息
|
public List<IqiyiAlbum2MQMsg> consumeIqiyiAlbumUpdateMsg(int count) {
|
List<IqiyiAlbum2MQMsg> list = new ArrayList<>();
|
List<Message> msgList = cmqUtil.recieveMsg(count, QUEUENAME_VIDEO_UPDATE_IQIYI_2);
|
if (msgList != null)
|
for (Message msg : msgList) {
|
IqiyiAlbum2MQMsg mm = new IqiyiAlbum2MQMsg();
|
mm.setHandler(msg.receiptHandle);
|
mm.setId(Long.parseLong(msg.msgBody));
|
list.add(mm);
|
}
|
return list;
|
}
|
|
//删除专辑更新消息
|
public void deleteIqiyiAlbumUpdateMsg(String handler) {
|
cmqUtil.deleteMsg(QUEUENAME_VIDEO_UPDATE_IQIYI_2, handler);
|
}
|
|
|
//添加专辑更新消息
|
public void addFunTVAlbumUpdateMsg(String id) {
|
cmqUtil.sendMsg(QUEUENAME_VIDEO_UPDATE_FUNTV_2, id);
|
}
|
|
//消费专辑更新消息
|
public List<FunTVAlbum2MQMsg> consumeFunTVAlbumUpdateMsg(int count) {
|
List<FunTVAlbum2MQMsg> list = new ArrayList<>();
|
List<Message> msgList = cmqUtil.recieveMsg(count, QUEUENAME_VIDEO_UPDATE_FUNTV_2);
|
if (msgList != null)
|
for (Message msg : msgList) {
|
FunTVAlbum2MQMsg mm = new FunTVAlbum2MQMsg();
|
mm.setHandler(msg.receiptHandle);
|
mm.setId(msg.msgBody);
|
list.add(mm);
|
}
|
return list;
|
}
|
|
//删除专辑更新消息
|
public void deleteFunTVAlbumUpdateMsg(String handler) {
|
cmqUtil.deleteMsg(QUEUENAME_VIDEO_UPDATE_FUNTV_2, handler);
|
}
|
|
|
/**
|
* 搜索引擎
|
* @param id
|
*/
|
|
/**
|
* 搜索引擎消息
|
*
|
* @param id
|
*/
|
public void addSolrMsg(String id) {
|
cmqUtil.sendMsg(QUEUENAME_SOLR, id);
|
}
|
|
public List<SolrVideoMQMsg> consumeSolrMsg(int count) {
|
List<SolrVideoMQMsg> list = new ArrayList<>();
|
List<Message> msgList = cmqUtil.recieveMsg(count, QUEUENAME_SOLR);
|
if (msgList != null)
|
for (Message msg : msgList) {
|
SolrVideoMQMsg mm = new SolrVideoMQMsg();
|
mm.setHandler(msg.receiptHandle);
|
mm.setId(msg.msgBody);
|
list.add(mm);
|
}
|
return list;
|
}
|
|
|
public void deleteSolrMsg(String handler) {
|
cmqUtil.deleteMsg(QUEUENAME_SOLR, handler);
|
}
|
|
|
/**
|
* 删除视频资源
|
*
|
* @param videoId
|
*/
|
|
public void addVideoResourceDeleteMsg(String videoId) {
|
cmqUtil.sendMsg(QUEUENAME_VIDEO_RESOURCE_DELETE, videoId);
|
}
|
|
public List<CMQConsumeMsg> consumeVideoResourceDeleteMsg(int count) {
|
List<CMQConsumeMsg> list = new ArrayList<>();
|
List<Message> msgList = cmqUtil.recieveMsg(count, QUEUENAME_VIDEO_RESOURCE_DELETE);
|
if (msgList != null)
|
for (Message msg : msgList) {
|
CMQConsumeMsg mm = new CMQConsumeMsg();
|
mm.setHandler(msg.receiptHandle);
|
mm.setData(msg.msgBody);
|
list.add(mm);
|
}
|
return list;
|
}
|
|
|
public void deleteVideoResourceDeleteMsg(String handler) {
|
cmqUtil.deleteMsg(QUEUENAME_VIDEO_RESOURCE_DELETE, handler);
|
}
|
|
|
}
|