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

订单超时过期的实现方案的探讨

在我们的业务开发中,会遇到这样一个场景,用户下了一个单,如果超过20分钟不进行支付,订单就要变成已取消状态。

字段设定

订单中需要设定了三个字段:订单是否取消、是否支付、支付超时时间。

订单是否取消会存在:未取消、已取消

是否支付 存在:待支付、已支付

支付超时时间就是超过这个时间,还没支付完成,就超时了

状态机计算逻辑

在状态机下,订单状态中有一个已取消状态

这个状态是一个状态机:订单是否取消 = true 或者 ( 是否支付 = false 且 当前时间大于支付超时时间)

这样,我们就可以用状态机正确的去获取到这个状态。

当用户在超过了这个支付时间再去支付,就可以告诉用户,订单已取消。

定时任务检查订单状态

由于一般订单的取消会伴随着库存释放以及优惠券红包释放。所以,需要有一个定时任务定时的去获取这样的数据(是否支付 = false 且 当前时间大于支付超时时间),一般时间间隔可以设定为1秒。

在获取到之后,马上将订单是否取消的状态设置成true,然后再去处理相关的释放逻辑。

http://www.lryc.cn/news/463180.html

相关文章:

  • C++中的CRTP
  • go压缩的使用
  • 一图解千言,了解常见的流程图类型及其作用
  • 【微信小程序_19_自定义组件(1)】
  • 标准版admin后台页面添加及开发操作流程及注意事项
  • ‘perl‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  • 如何利用CMMI帮助组织消除低价值流程
  • 如何理解线程安全这个概念?
  • 代码随想录算法训练营第48天| 739. 每日温度,496.下一个更大元素 I,503.下一个更大元素II
  • Qt 支持打包成安卓
  • PDF工具类源码
  • NirCmd-Gui-Chinese-Introduction
  • 吴恩达深度学习笔记(7)
  • 二、数据离线处理场景化解决方案
  • 算法题总结(十四)——贪心算法(上)
  • hive on tez 指定队列后任务一直处于running状态
  • 闲说视频清晰度和各种格式、编码技术的发展历史
  • 嵌入式职业规划
  • Nginx - 实现 TCP/DUP流量的按 IP 动态转发
  • 基于深度学习的进化神经网络设计
  • 软考-软件设计师(10)-专业英语词汇汇总与新技术知识点
  • PyTorch 2.5 发布带来一些新特性和改进
  • 算法:560.和为k的子数组
  • C++之list(2)
  • React Componet类组件详解(老项目)
  • 位运算题目-Java实现-LeetCode题解:判断字符是否唯一-丢失的数字-两整数之和-只出现一次的数字 II-消失的两个数字
  • 复合泊松过程
  • [week1] newstar ctf ezAndroidStudy
  • TCP——Socket
  • OpenStack服务Swift重启失效(已解决)