java redis 短信业务应用

发布时间 2023-10-28 09:20:43作者: oktokeep

java redis 短信业务应用

短信业务场景:根据实际业务来通知客户,在短信的MQ中新增字段:是否需要发送短信的标识,短信微服务可以接收到MQ后根据该字段来判断是否发送。

如果发送端MQ的事件的操作是分开的,比如步骤1:修改订单, 步骤2:产生修改后的费用去支付,在支付成功之后才发送该MQ消息。
如果在步骤2的发送MQ的字段中,需要步骤1的字段,
有两种方法:
1:查询步骤1 落库的数据,在步骤2的时候查询出来。
2:如果第一步查询并且仍然需要比较复杂的逻辑处理,可以将步骤1的 逻辑后的数据直接放到redis中,根据唯一标识来作为key,这样在步骤2直接从redis中获取。

//send
stringRedisTemplate.opsForValue().set(redisKey, "1",30, TimeUnit.MINUTES);

//receive
String strFlag = "0";
String redisKey = myRedisKeyTest + renterOrderNo;
if(stringRedisTemplate.hasKey(redisKey)) {
	strFlag = stringRedisTemplate.opsForValue().get(redisKey);
}


//other:
//注册用户的MQ >> 会员注册微服务
rabbitTemplate.convertAndSend(RabbitConstants.EXCHANGE_CREATE_MEMBER,RabbitConstants.ROUTING_KEY_CREATE_MEMBER,JsonUtil.toJson(createMemDto));
//从redis中获取注册后的结果
String regNo = redisTemplate.opsForList().leftPop("member:regNo:mobile:" + createMemDto.getMobile(), 5000, TimeUnit.MILLISECONDS);