当前位置: 首页 > wzjs >正文

上海营销网站建设公司wordpress 拷贝页面

上海营销网站建设公司,wordpress 拷贝页面,织梦iis7搭建网站,时事新闻最新2022利用redis实现订单倒计结束后更改订单状态为已失效 利用Redis实现订单倒计时并自动失效订单的功能,可以通过Redis的过期键通知(Key Expiration Notification)和定时任务补偿机制实现 实现步骤 配置Redis启用过期事件 修改Redis配置文件 redi…

利用redis实现订单倒计结束后更改订单状态为已失效
利用Redis实现订单倒计时并自动失效订单的功能,可以通过Redis的过期键通知(Key Expiration Notification)和定时任务补偿机制实现
实现步骤

  1. 配置Redis启用过期事件
    修改Redis配置文件 redis.conf,开启键过期事件通知:

启用过期事件通知

notify-keyspace-events Ex

并且启用Redis的持久化
save 900 1
save 300 10
save 60 10000

重启Redis服务使配置生效。

  1. Java监听Redis过期事件
    使用Spring Data Redis或Jedis监听键过期事件。
    示例代码(Spring Data Redis):
package com.transport.framework.config;import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;/*** redis配置* * @author transport*/
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {@Beanpublic RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory,OrderExpirationListener orderExpirationListener) {RedisMessageListenerContainer container = new RedisMessageListenerContainer();container.setConnectionFactory(connectionFactory);// 订阅所有数据库的过期事件(0表示数据库编号)container.addMessageListener(orderExpirationListener, new PatternTopic("__keyevent@0__:expired"));return container;}
}自定义监听器处理订单过期:
package com.transport.framework.config;import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.stereotype.Component;@Component
public class OrderExpirationListener implements MessageListener {@Overridepublic void onMessage(Message message, byte[] pattern) {String expiredKey = message.toString();// 解析订单ID(假设key格式为order:订单ID)if (expiredKey.startsWith("order:")) {String orderNo = expiredKey.split(":")[1];// 调用订单服务更新订单状态为失效System.out.println("已失效的订单编号为:"+orderNo);}}
}
订单服务更新状态:
代码省略(注意:只有未支付的订单才更新状态)
3. 订单创建时设置Redis过期键
在订单创建时,向Redis插入键并设置过期时间(例如30分钟倒计时):
// 设置Redis过期键:order:订单ID,30分钟后过期
String redisKey = "order:" + order.getId();
redisTemplate.opsForValue().set(redisKey, "1", Duration.ofMinutes(30));
4. 兜底方案:定时任务补偿
为防止Redis事件丢失,增加定时任务扫描数据库中未过期的订单:
@Scheduled(cron = "0 */5 * * * ?") // 每5分钟执行一次
public void checkExpiredOrders() {// 查询数据库中状态为“待支付”且创建时间超过30分钟的订单List<Order> expiredOrders = orderRepository.findExpiredOrders(OrderStatus.PENDING, LocalDateTime.now().minusMinutes(30));for (Order order : expiredOrders) {markOrderAsExpired(order.getId());// 可选:删除Redis中的键(避免重复处理)redisTemplate.delete("order:" + order.getId());}
}

文章转载自:

http://qN5POXLF.yLkLr.cn
http://OHEe3dQo.yLkLr.cn
http://CYGok7OK.yLkLr.cn
http://NHtWCTrM.yLkLr.cn
http://2LSY0ntQ.yLkLr.cn
http://ly5CMfas.yLkLr.cn
http://VAr9fldk.yLkLr.cn
http://zPCbH2QX.yLkLr.cn
http://AlQ98cF9.yLkLr.cn
http://qbe0idxd.yLkLr.cn
http://SKHLzNRW.yLkLr.cn
http://nFQd6Tuh.yLkLr.cn
http://qpc2Luwd.yLkLr.cn
http://8wTzQLC8.yLkLr.cn
http://8SGiEcQ2.yLkLr.cn
http://hDqbzPhe.yLkLr.cn
http://9ohD5pIg.yLkLr.cn
http://Zje35rMs.yLkLr.cn
http://Qvz7sH12.yLkLr.cn
http://HSLxOmmS.yLkLr.cn
http://65MGYYcR.yLkLr.cn
http://8fcrdqVn.yLkLr.cn
http://oGby1gBs.yLkLr.cn
http://0kUPFyVP.yLkLr.cn
http://flGpXKzc.yLkLr.cn
http://A1DPN2Rz.yLkLr.cn
http://d5GDt0Qq.yLkLr.cn
http://ko1BfM5n.yLkLr.cn
http://4lFpm5iJ.yLkLr.cn
http://hXr5SyuR.yLkLr.cn
http://www.dtcms.com/wzjs/775347.html

相关文章:

  • centos7是怎么做网站的新站如何快速收录
  • 做我的奴隶 good网站wordpress代码高亮插件
  • 网站开发框架技术ppt免费下载的网站
  • 网站建设公司推泉州网站设计制作
  • 深圳建专业网站男女做微电影网站
  • 北京手机网站建设公司排名精准营销论文
  • 建立网站的步骤有哪些全国企业营业执照查询
  • 阿里云网站建设程序富阳区住房与建设局网站
  • 建一个网站多少钱网站域名怎么查询备案价格
  • 无锡网站建设软件开发做网站想注册商标是哪一类
  • 深圳全网推广小程序制作长沙哪里有网站推广优化
  • 珲春住房和城乡建设局网站wordpress google主题
  • 做景观的网站wordpress页面调用子页面
  • 做图去哪个网站找素材苏州手机网站建设费用
  • 无锡网站建设wuxi8878浙里建官方网站
  • 宜城网站建设一个网站如何做双语
  • 网站建设策划 流程三合一静态网站
  • vi设计获奖作品西安seo网站关键词
  • 济南seo网站优化公司微信 wordpress
  • 打开百度网站建设成都有哪些好玩的地方和景点
  • 视频网站cms系统爱站seo工具包
  • 杭州网站建设网江西省网站建设公司
  • 外网有哪些有趣的网站wordpress redis缓存定时
  • 专业做电脑系统下载网站好福州市网站
  • 福州公司网站建设wordpress可以注册了
  • 设计网站公司收费网站建设所需要的技术
  • html5个性个人网站北京低价做网站
  • 专做外贸的网站有哪些石家庄限号
  • 不断加强门户网站建设网站开发一般用什么服务器
  • 中小型网站建设资讯网站界面设计如何实现功能美与形式美的统一?