您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 Redis消息訂閱(redis消息隊列還有其他嗎)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-03 06:52:52【】7人已围观

简介ssageListener"class="org.springframework.data.redis.listener.adapter.MessageListenerAdapte

ssageListener"

class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">

<property name="delegate" ref="smsMessageDelegateListener" />

<property name="serializer" ref="jdkSerializer" />

</bean>

<bean id="sendMessage" class="買粉絲.djt.買粉絲mon.cache.redis.queue.SendMessage">

<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隊列

很赞哦!(31392)

相关文章

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:四川南充营山县

工作室:小组

Email:[email protected]