当时接到了一个商城的需求,当时涉及到订单的超时,根据网上的教程说是使用redis的 过期事件来做,,按照教程来写,不过确实很有用,不错不错,,当我心高彩烈的找领导说把服务器上的redis通知打开,期间可能会重启reids。我靠,当然人家不同意了,redis用了那么久了,而且怎么能说重启就重启呢,,怪我怪我,开始做的时候没有考虑那么周全。不过我是一个有想法,开心的程序员。不一会又来了一个实现思路。同时觉得过期的这种不是很好处理,reids过期会把key删除,,所以如果临近过期时间给用户发送提醒短信的时候就不好搞。这个很简单,听我娓娓道来:
首先到提交订单,提交完订单之后讲订单时间存到redis

 redisService.setKey("shop_order:"+shopOrder.getId(), DateUtil.formatDateTimeByTime(shopOrder.getCreateTime()));

我是这样写的,,我在redis存储的时候加统一的前缀,方便后面取值,然后新建一个定时任务的项目,每分钟开始去查询时间和现在的时间进行比对,扩展性强,但是适用与数据量不是很大的时候:

        SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//搜索已shop_order:开头的keySet<String> keys = redisService.getAllKey("shop_order:*");List<String > delKey = Lists.newArrayList();if (keys != null && keys.size() >0){for (String key : keys){String value = (String) redisService.getValue(key);Date orderDate = null;Date nowDate = new Date();try {orderDate = sDateFormat.parse(value);} catch (ParseException e) {e.printStackTrace();}Calendar calendar = Calendar.getInstance();calendar.setTime(orderDate);calendar.add(Calendar.MINUTE,30);orderDate = calendar.getTime();if (orderDate.getTime() < nowDate.getTime()){//超时处理delKey.add(key);}}//删除redis keyredisService.deleteKey(delKey);}

springboot订单超时和超时提醒相关推荐

  1. Springboot微服务调用超时处理

    在开发过程中,应用程序通常会和其他的应用进行交互,应用系统之间的交互往往离不开网络通信.然而,网络环境是不稳定的,网络超时是我们需要考虑的问题. 交互模式 同步 同步调用 同步调用接口返回两种状态,这 ...

  2. springboot拦截异常信息发送邮件提醒

    springboot拦截异常信息发送邮件提醒 参考文章: (1)springboot拦截异常信息发送邮件提醒 (2)https://www.cnblogs.com/SimonHu1993/p/1091 ...

  3. 精品基于Uniapp+Springboot实现的患者服药提醒APP

    <[含文档+PPT+源码等]精品基于Uniapp+Springboot实现的患者服药提醒APP[包运行成功]>该项目含有源码.文档.PPT.配套开发软件.软件安装教程.项目发布教程等 软件 ...

  4. 验证码短信接口可以广泛应用在网站会员手机验证、APP应用手机验证、订单通知、物流提醒等触发类短信应用。

    应用范围 验证码短信接口可以广泛应用在网站会员手机验证.APP应用手机验证.订单通知.物流提醒等触发类短信应用. 手机短信验证码技术实现 1.用户填写自己的手机号码,点击"获取验证码&quo ...

  5. 指为服务器指定超时时限为5分钟,微信服务器连接公众号开发者服务器时发生超时,超时时间为5秒,这是什么问题引起的?...

    Appid: wx10d9ea1837d670fe 昵称: 中山电信 时间: 2021-04-13 18:06:01 内容: 微信服务器连接公众号开发者服务器时发生超时,超时时间为5秒 次数: 5分钟 ...

  6. 响应服务器421,微信服务器连接公众号开发者服务器时发生超时,超时时间为5秒? | 微信开放社区...

    之前分析是响应返回的格式有问题,经过排查返回的是success,只有关键词回复是回复的xml跟官方格式一致,现在改成返回空串,问题依旧存在.麻烦帮忙排查下 问题1:微信服务器连接公众号开发者服务器时发 ...

  7. SpringBoot整合Redis,连接超时及其解决方案

    在Spring Boot中整合redis的步骤: 1.引入redis的starters org.springframework.boot spring-boot-starter-data-redis ...

  8. Java 实现订单未支付超时自动取消

    在电商上购买商品后,如果在下单而又没有支付的情况下,一般提示30分钟完成支付,否则订单自动.比如在京东下单为完成支付: 超过24小时,就会自动取消订单,下面使用 Java 定时器实现超时取消订单功能. ...

  9. TP6订单待支付超时自动取消

    1:安装redis 2:安装think-queue composer require topthink/think-queue 3:设置配置文件,使用redis进行存储,文件位置config/queu ...

最新文章

  1. 如何更改微调器的文字大小和文字颜色?
  2. python3 系统监控脚本(CPU,memory,网络,disk等)
  3. CentOS下crash分析内核kdump文件方法
  4. 数据中心在疫情期间发挥的作用
  5. 请问如何把.net framework框架集成在安装程序里头?
  6. 八、马科维茨投资组合
  7. linux基本项目环境搭建
  8. Solr(搜索引擎服务)和MongoDB通过mongodb-connector进行数据同步的解决方案,以及遇到的各种坑的总结(针对solr-5.3.x版本),mongodb和solr实现实时增量索引
  9. 1036 跟奥巴马一起编程(15 分)
  10. emacs php 配置文件,如何配置emacs进行正确的PHP开发?
  11. [原创]全球首款不使用ViewState的Asp.Net2.0控件库
  12. PHP接口设置10分钟失效
  13. Mac M1安装配置OpenCV教程
  14. 都说ApiPost香,它到底香在哪里?
  15. 用spark实现单词统计
  16. PHP 图片转base64编码 和 base64编码字符串转换成图片保存
  17. (三)对图像进行Gauss高斯平滑处理
  18. kubeadm创建k8s集群(1.14.2版本)
  19. 测试开发工具大全,看看有没有你使用的!
  20. Oracle EBS R12 AP模块主要表结构整理

热门文章

  1. javaweb JAVA JSP社区医院挂号系统jsp医院挂号预约网站系统(医疗住院 挂号预约 护士医生查询)
  2. Python2 中文编码
  3. 浓缩德国奎尔鱼油 (QÜELL FISH OIL™ HIGHT EPA / DHA / D)
  4. HDU2182 Frog —— 简单DP
  5. 推特营销引流入门指南
  6. 拥有资源的多少并不重要,如果不懂得利用,永远是不够的
  7. 《小学四则运算练习软件软件需求说明》结对项目报告
  8. [数据][json格式] 2016年统计用区划代码和城乡划分代码
  9. python IO Demo
  10. 测试淘宝站内的搜索系统,请问你能想到哪些方法来进行测试?