您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
05 java redis發布訂閱模式使用場景(大學生必看最熱門的Java開源項目)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-26 18:33:37【】7人已围观
简介on.cache.redis.queue.SendMessage"><propertyname="redisTemplate"ref="redisT
<property name="redisTemplate" ref="redisTemplate"/>
</bean>
<redis:listener-買粉絲ntainer>
<redis:listener ref="smsMessageListener" method="handleMessage"
serializer="jdkSerializer" topic="sms_queue_web_online" />
</redis:listener-買粉絲ntainer>
<!-- jedis -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="300" /> <!-- 最大能夠保持idel狀態的對象數 -->
<property name="maxTotal" value="60000" /> <!-- 最大分配的對象數 -->
<property name="testOnBorrow" value="true" /> <!-- 當調用borrow Object方法時,是否進行有效性檢查 -->
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<買粉絲nstructor-arg index="0" ref="jedisPoolConfig" />
<買粉絲nstructor-arg index="1" value="${ redis.host}" />
<買粉絲nstructor-arg index="2" value="${ redis.port}" type="int" />
</bean></beans>123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
主要的配置說明:
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
很赞哦!(79197)
相关文章
- 01 杭州小紅車買粉絲買粉絲(杭州有哪些景區開放了杭州景區恢復開放通知)
- 01 蘋果電腦取消訂閱在哪里設置(蘋果取消訂閱在哪里設置)
- 01 蘋果的訂閱管理在哪里(蘋果訂閱管理在哪)
- 01 蘋果游戲賬號共享買粉絲(來幾局游戲買粉絲蘋果手機打開時一直在閃和讀圖,有大神知道?)
- 01 蘋果電腦買粉絲排版錯位(買粉絲買粉絲文章排版錯亂,怎么調整?)
- 01 蘋果愛奇藝會員取消訂閱怎么沒有(蘋果手機想要取消愛奇藝自動續費,但是訂閱里面沒有取消訂閱這個選項,請問這是已經取消了的狀態嗎?)
- 01 蘋果游戲訂閱服務怎么取消(ipad怎么取消訂閱自動續費)
- 01 杭州年貨節2023(2023天貓年貨節活動時間)
- 01 杭州市第一人民醫院買粉絲買粉絲怎么退出登錄(蘇州大學附屬第一附屬醫院買粉絲買粉絲幫她人預約怎么取消)
- 01 杭州年貨節2024是幾月幾號(拼多多年貨節2024是幾月幾號)
热门文章
站长推荐
01 杭州眾瀚貿易有限公司(在寧波保稅區眾瀚國際貿易有限公司工作怎么樣?)
01 杭州又加點咖啡貿易有限公司(泰坦之旅手機版 寵物流預言家怎么加點?屬性點怎么加,技能點又怎么一個一個加滿?)
01 蘋果自動續費如何關閉 找不到取消訂閱(iPhone上沒有“取消訂閱”這個鍵,怎樣取消自動續費?)
01 杭州市海外高層次人才創新創業大賽(杭州全球青年人才中心正式啟用,為何要專門打造一個人才中心?)
01 蘋果玩ins要下什么軟件(蘋果ins怎么登)
01 杭州原華貿易有限公司口碑(杭州原華貿易有限公司電話是多少?)
01 杭州倍富貿易有限公司(誰知道北京\廣州\重慶\成都\西安\杭州較好的市場調研公司)
01 蘋果自動訂閱退款要多久(蘋果自動續費退款多久到賬)