您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
03 Redis消息訂閱(redis頻道收到發布者信息后可以只推信息給一個訂閱者嗎)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-13 07:01:12【】0人已围观
简介7282930313233343536373839404142434445464748495051525354555657585960主要的配置說明: 1.序列化:一般我們向Redis發送一
主要的配置說明:
1.序列化:一般我們向Redis發送一個消息定義的Java對象,這個對象需要序列化。這里使用JdkSerializationRedisSerializer:
<bean id="jdkSerializer" class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />1
2.發送者:
<bean id="sendMessage" class="買粉絲.djt.買粉絲mon.cache.redis.queue.SendMessage">
<property name="redisTemplate" ref="redisTemplate"/>
</bean>123
3.監聽者:
<bean id="smsMessageListener"
class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">
<property name="delegate" ref="smsMessageDelegateListener" />
<property name="serializer" ref="jdkSerializer" />
</bean>
<redis:listener-買粉絲ntainer>
<redis:listener ref="smsMessageListener" method="handleMessage"
serializer="jdkSerializer" topic="sms_queue_web_online" />
</redis:listener-買粉絲ntainer>123456789
smsMessageListener:消息監聽器
redis:listener-買粉絲ntainer:定義消息監聽,method:監聽消息執行的方法,serializer:序列化,topic:監聽主題(可以理解為隊列名稱)
3.3代碼實現
1.定義短信消息對象SmsMessageVo
public class SmsMessageVo implements Serializable {
//id
private Integer smsId; //手機號
private String mobile; //類型,1:驗證碼 2:訂單通知
private Byte type; //短信創建時間
private Date createDate; //短信消息處理時間
private Date processTime; //短信狀態,1:未發送 2:發送成功 3:發送失敗
private Byte status; //短信內容
private String 買粉絲ntent; //省略setter和getter方法
...123456789101112131415161718192021222324
2.定義消息隊列發送對象SendMessage
//SendMessage.javapublic class SendMessage { private RedisTemplate<String, Object> redisTemplate; public RedisTemplate<String, Object> getRedisTemplate() { return redisTemplate;
} public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) { this.redisTemplate = redisTemplate;
} public void sendMessage(String channel, Serializable message) {
redisTemplate.買粉絲nvertAndSend(channel, message);
}
}12345678910111213141516171819202122
3.發送消息
String smsContent = templateToContent(template.getContent(),
regMsgCode);
SmsMessageVo smsMessageVo = new SmsMessageVo();
smsMessageVo.setMobile(mobile);
smsMessageVo.setType((byte) SmsType.VERIFICATION.getType());
smsMessageVo.setChannelId(1);
smsMessageVo.setContent(smsContent);
smsMessageVo.setCreateDate(new Date());
smsMessageVo.setStatus((byte) SmsSendStatus.TO_SEND.getType());
smsMessageVo.setTemplateId(1);
//先把待發送的短信存入數據庫
SmsQueue smsQueue = new SmsQueue();
BeanUtils.買粉絲pyProperties(smsQueue, smsMessageVo);
smsQueueService.addSmsQueue(smsQueue);
//異步發送短信到redis隊列
sendMessage.sendMessage(Constants.REDIS_QUEUE_SMS_WEB, smsMessageVo);
//Constants.REDIS_QUEUE_SMS_WEB = "sms_queue_web_online",和applicationContext-redis中topic配置一樣123456789101112131415161718192021
4.監聽消息
//SmsMessageDelegateListener.java@Component("smsMessageDelegateListener")public class SmsMessageDelegateListener {
@Autowired
private SmsQueueService smsQueueService; //監聽Redis消息
public void handleMessage(Serializable message){ if(message instanceof SmsMessageVo){
SmsMessageVo messageVo = (SmsMessageVo) message; //發送短信
SmsSender smsSender = SmsSenderFactory.buildEMaySender();
smsSender.setMobile(messageVo.getMobile());
smsSender.setContent(messageVo.getContent()); boolean sendSucc = false; //判斷短信類型
//驗證碼短信
if(messageVo.getType() == (byte)SmsType.VERIFICATION.getType()){
sendSucc = smsSender.send();
} if(!sendSucc){ return;
} // 異步更新短信表狀態為發送成功
final Integer smsId = messageVo.getSmsId();
Executor executor = Executors.newSingleThreadExecutor();
executor.execute(new Runnable() { public void run() {
SmsQueue smsQueue = new SmsQueue();
smsQueue.setSmsId(smsId);
smsQueue.setStatus((byte)SmsSendStatus.SEND.getType());
smsQueue.setProcessTime(new Date());
smsQueueService.updateSmsQueue(s
很赞哦!(77373)
相关文章
- 01 youtube官網中文版下載電腦官網入口在哪(you tu be的官網是多少?)
- 05 上海對外經貿大學法與經濟學(對于高考生來說,上海商學院和上海對外經貿大學,哪所更值得推薦?)
- 05 上海牧豐貿易有限公司圖片(上海外國語大學走出過哪些名人?)
- 01 youtube官網中文版下載電腦版官網(電腦pr怎么下載)
- 05 上海快橋貿易有限公司(介紹下上海外高橋保稅區內貨物從進倉庫到出倉庫的整個過程及需要的手續)
- 05 上海暇益貿易有限公司(上海的發展對全國意味著什么?)
- 01 youtube官網中文版介紹及使用方法及步驟(電腦pr怎么下載)
- 05 上海對外經貿大學新聞與傳播學院招聘(大學的國際經濟與貿易能學到些什么?)
- 05 上海悟闊貿易有限公司(應用文寫作格式)
- 01 youtube官網中文版下載電腦安裝apk解除(在手機通過無線升級Youtube時 提示下載完成 點擊安裝 但是一打開就顯示解析包時錯誤 應該怎么辦)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片
职业:程序员,设计师
现居:西藏拉萨墨竹工卡县
工作室:小组
Email:[email protected]
热门文章
站长推荐
01 youtube官網中文版介紹課件ppt人教版第六(怎么將YouTube視頻嵌入到PPT PowerPoint中)
05 上海引普入貿易有限公司(上海十大裝修公司有哪幾家?)
01 youtube官網中文版教程pdf(學生手機推薦)
01 youtube官網中文版介紹課件ppt完美版攻略隱藏(怎么將YouTube視頻嵌入到PPT PowerPoint中)
05 上海朗麥國際貿易有限公司(上海世博會)
01 youtube官網中文版介紹及使用策略是誰提出(如何做視頻營銷?)
01 youtube官網中文版介紹課件ppt背景圖(App Store上有哪些冷門但逆天的 App?)
01 youtube官網中文版下載電腦端工具windows(怎樣在電腦上下載嗶哩嗶哩的視頻?)