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

做网站编辑需要具备的素质产品详情页模板免费下载

做网站编辑需要具备的素质,产品详情页模板免费下载,南京关键词网站排名,展览策划1.借助redis的过期特性 下单时#xff0c;订单状态是待支付。将订单编号作为key#xff0c;下单的时间戳作为value#xff0c;设置过期时间是30分钟。服务器监听redis的key过期事件#xff0c;如果是订单过期#xff08;还会有其他key过期#xff09;#xff0c;则修改…1.借助redis的过期特性 下单时订单状态是待支付。将订单编号作为key下单的时间戳作为value设置过期时间是30分钟。服务器监听redis的key过期事件如果是订单过期还会有其他key过期则修改订单的状态为已取消。当30分钟后未支付则触发redis过期事件只需修改订单状态即可。若30分钟内支付成功则需要删除此订单在redis的值。当然在支付时需要检查订单是否已超时或已支付。很明确只需要在应用中添加监听器监听redis过期即可。首先是配置redis监听器,代码如下所示 Configuration public class RedisListenerConfig {BeanRedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {RedisMessageListenerContainer container new RedisMessageListenerContainer();container.setConnectionFactory(connectionFactory);return container;}} 继承redis键过期监听器进行业务处理 Component public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {super(listenerContainer);}Overridepublic void onMessage(Message message, byte[] pattern) {// message.toString()可获取失效的keyString expiredKey message.toString();System.out.println(expiredKey: expiredKey);if (expiredKey.startsWith(order)) {// 获取订单orderNoString orderNo expiredKey.substring(expiredKey.lastIndexOf(:) 1);// TODO 处理过期的订单 将待支付的订单改为已取消(超时未支付)System.out.println(orderNo:orderNo);}}} 注意由于存在多个键的过期故必须对键进行判断是否是订单超时造成的过期。通过开启key过期的事件通知当key过期时会发布过期事件我们定义key过期事件的监听器当key过期时就能收到回调通知。 1由于Redis key过期删除是定时惰性当key过多时删除会有延迟回调通知同样会有延迟。因此性能较低 2且通知是一次性的没有ack机制若收到通知后处理失败将不再收到通知。需自行保证收到通知后处理成功。 3通知只能拿到key拿不到value 4Redis将数据存储在内存中如果遇到恶意下单或者刷单的将会给内存带来巨大压力 2、JDK的延迟队列 该方案是利用JDK自带的DelayQueue来实现这是一个无界阻塞队列该队列只有在延迟期满的时候才能从中获取元素放入DelayQueue中的对象是必须实现Delayed接口的。 DelayedQueue实现工作流程如下图所示 Poll():获取并移除队列的超时元素没有则返回空。 take():获取并移除队列的超时元素如果没有则wait当前线程直到有元素满足超时条件返回结果。 定义一个类OrderDelay实现Delayed代码如下 public class OrderDelay implements Delayed {private String orderId;private long timeout;OrderDelay(String orderId, long timeout) {this.orderId orderId;this.timeout timeout System.nanoTime();}Overridepublic int compareTo(Delayed other) {if (other this) {return 0;}OrderDelay t (OrderDelay) other;long d (getDelay(TimeUnit.NANOSECONDS) - t.getDelay(TimeUnit.NANOSECONDS));return (d 0) ? 0 : ((d 0) ? -1 : 1);}/*** 返回距离你自定义的超时时间还有多少*/Overridepublic long getDelay(TimeUnit unit) {return unit.convert(timeout - System.nanoTime(), TimeUnit.NANOSECONDS);}void print() {System.out.println(orderId 编号的订单要删除啦。。。。);}public static void main(String[] args) {ListString list new ArrayListString();list.add(00000001);list.add(00000002);list.add(00000003);list.add(00000004);list.add(00000005);DelayQueueOrderDelay queue new DelayQueueOrderDelay();long start System.currentTimeMillis();for(int i 0; i 5; i){//延迟三秒取出queue.put(new OrderDelay(list.get(i), TimeUnit.NANOSECONDS.convert(3, TimeUnit.SECONDS)));try {queue.take().print();System.out.println(After (System.currentTimeMillis()-start) MilliSeconds);} catch (InterruptedException e) {e.printStackTrace();}}}} 输出如下 00000001编号的订单要删除啦。。。。 After 3005 MilliSeconds 00000002编号的订单要删除啦。。。。 After 6010 MilliSeconds 00000003编号的订单要删除啦。。。。 After 9011 MilliSeconds 00000004编号的订单要删除啦。。。。 After 12015 MilliSeconds 00000005编号的订单要删除啦。。。。 After 15018 MilliSeconds 可以看到都是延迟3秒订单被删除 优缺点 优点:效率高,任务触发时间延迟低。 缺点: (1)服务器重启后数据全部消失怕宕机 (2)集群扩展相当麻烦 (3)因为内存条件限制的原因比如下单未付款的订单数太多那么很容易就出现OOM异常 (4)代码复杂度较高
http://www.zqtcl.cn/news/423927/

相关文章:

  • app网站如何做推广安装wordpress错误
  • 八零婚纱摄影工作室网站南昌微信营销公司
  • 海南网站开发公司百度网站建设费用怎么做账
  • 做网站的研究生专业微信公众号推广的方法
  • sql网站开发数据库连接失败wordpress改全屏
  • 做外贸怎么上国外网站网上注册公司流程图文
  • 网站开发 慕课厦门建设局网站技司学校
  • 中山自助建站系统多个网站能否统一做等保
  • 做网站怎么别人搜不出来电商购物网站开发需求分析
  • 教育网站设计用模板做的网站不好优化
  • php网站api接口写法中国做铁塔的公司网站
  • 做博客网站如何盈利wordpress百家号
  • 读经典做临床报名网站cnzz 网站跳出率查询
  • 青岛网站建设网站广东手机网站制作公司
  • 个人免费建站软件影视传媒网站源码
  • 网站软件下载app如何做国外网站
  • 网站建设小细节图片北京装修公司报价
  • 辽宁省住房和城乡建设厅网站换了淮安做网站公司
  • 天津商业网站建设搜狗排名优化工具
  • 阿里服务器可以做多少个网站在家怎么利用电脑赚钱
  • 免费建设一个网站google官方版下载
  • 心馨人生珠海网站建设外贸型企业网站建设
  • 好网站建设公司昆明乐清网站优化推广
  • 哪些网站用天平做logo站长工具app官方下载
  • 做餐厅logo用什么软件网站手机自适应网站源码
  • 股票网站模板辽宁工程建设信息网站
  • 毕业设计某网站开发的开题报告范文广西建设教育网站
  • 浏览小城镇建设的网站商丘网站公司
  • python学习网站做好网络推广的技巧
  • 网站有几种类型小说网站开发源码