处理类似于12306订单30分钟自动取消?
我们的QQ群606700249有人提到 如下问题 处理类似于12306订单30分钟自动取消?
做个redis hash结构的 ( 用户 id, 订单号id, value是个对象obj ) , 对象包含订单的信息,这个对象加一个失效日期字段,每次查询的时候发现这条记录 失效了 ,插入msyql 中, redis里面删掉这个记录 (或者不删除,修改obj订单状态的字段)
这样就不需要定时检索轮询,redis自身 缓存失效机制 两种,一种是定时检索失效,另一种就是查询时候失效剔除
--------------
根据你们的需求调整 上面只是一个思路,比如redis 是否要删除数据,你们是否准备全部从redis查 还是从mysql查 (redis 和mysql 同步)
另外如果压力不大 你们可以都存到mysql 里面 加一个时间失效字段,查询的时候判断是否失效,修改订单状态, 这样也不需要定时轮询做失效.
20180613 更新本文 除了上面的方案
可以考虑使用延时队列 了解一下 延时队列 有惊喜
参考
延时处理 延时队列 (线程池) (100ms,1s,5s 越来越大,因为对方服务可能出问题了)
可以参考:
java延迟队列
https://blog.csdn.net/superdog007/article/details/53944884
延迟队列DelayQueue
https://www.cnblogs.com/tietazhan/p/6632468.html
分布式延迟消息队列讨论
https://www.cnblogs.com/yx1989/p/7000503.html
基于redis的延迟消息队列设计
https://www.cnblogs.com/peachyy/p/7398430.html
newScheduledThreadPool延时任务线程池,实现原理
https://blog.csdn.net/lisuyibmd/article/details/53085368
处理类似于12306订单30分钟自动取消?相关推荐
- Redis key过期事件监听实现 - 30分钟自动取消未支付订单
目录 一.前言 二.实现方案分析 三.Redis key过期事件方案实现步骤 3.1 Redis 安装步骤详见 3.2 修改 Redis 配置 3.3 在获取支付链接视图中设置key过期事件 3.4 ...
- 面试官问:生成订单30分钟未支付,则自动取消,该怎么实现?
欢迎关注方志朋的博客,回复"666"获面试宝典 来源 | https://blog.csdn.net/hjm4702192/article/details/80519010 在开发 ...
- 订单30分钟未支付自动取消怎么实现?
本文已经收录到Github仓库,该仓库包含计算机基础.Java核心知识点.多线程.JVM.常见框架.分布式.微服务.设计模式.架构等核心知识点,欢迎star~ 地址:https://github.co ...
- 面试官:生成订单30分钟未支付,则自动取消,该怎么实现?
Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记! 目录 了解需求 方案 1:数据库轮询 方案 2:JDK 的延迟队列 方案 3:时间轮算法 方案 4:redis 缓存 方案 5:使用 ...
- 实现生成订单30分钟未支付,则自动取消
目录 了解需求 方案 1:数据库轮询 思路 实现 优点 缺点 方案 2:JDK 的延迟队列 思路 实现 优点 缺点 方案 3:时间轮算法 思路 实现 优点 缺点 方案 4:redis 缓存 思路一 实 ...
- 生成订单30分钟未支付,则自动取消,该怎么实现?(典藏版)
目录 方案分析 (1)数据库轮询 (2)JDK的延迟队列 (3)时间轮算法 (4)redis缓存 (5)使用消息队列 在开发中,往往会遇到一些关于延时任务的需求.例如 生成订单30分钟未支付,则自动取 ...
- java实现订单未支付失效_未支付订单30分钟后,自动取消
未支付订单30分钟后,自动取消 生成订单时发起延时30分钟的任务 /** * 取消订单的任务 * @Title: startCancelOrderTask * @Description: 取消订单的任 ...
- 如何实现生成订单30分钟内未支付则自动取消?
如何实现生成订单30分钟内未支付则自动取消? 数据库轮询 JDK的延迟队列 Quartz 时间轮算法 使用消息队列 数据库轮询 不是很推荐的一种方式,需要定时扫描数据库,借助定时任务工具,如果是多服务 ...
- 订单30分钟未支付自动取消怎么实现
了解需求 在开发中,往往会遇到一些关于延时任务的需求. 例如 生成订单 30 分钟未支付,则自动取消 生成订单 60 秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务.那么 ...
最新文章
- 在mac下搭建java开发环境
- SD-WAN的四大错误观念
- python与excel的区别-python比较两个excel表格的差异
- SAP Spartacus把指定产品添加到购物车的API
- php实现文本替换,php文本替换 函数 strtr()、str_repalce()
- cad幕墙下料lisp_石材幕墙屋面不锈钢角钢接闪带施工方法
- 【转】MyEclipse快捷键大全
- 2018年4月10日--python解决乱码和作业
- 面对 996,程序员如何利用“碎片时间”涨薪?
- [转载] 晓说——第23期:大师照亮八十年代
- opengl入门6。1
- 使用JavaScript实现长方形、直角三角形、平行四边形、等腰三角形、倒三角、数字三角形...
- linux nginx 添加插件,linux安装nginx1.9.9实录
- UOS LINUX的开发测试,从来没有编译过什么应用?
- 操作必须使用一个可更新的查询
- python实现视频转图片
- Android Persistent常驻内存分析
- Robotframework(三)常用API介绍
- python中take函数_Python Pandas Series.take()用法及代码示例
- python视频教程大全集下载啦
热门文章
- android webview中加入无线淘宝客页面点击宝贝详情链接进入宝贝详情页面后无法返回问题
- 【combotree】easyui的combotree(树形下拉框)使用总结
- 保险公司如何从区块链中受益?
- 农村合作医疗和社保能同时交吗?
- 【RuoYi-Vue-Plus 实现日期范围查询 Mybatis-Plus Element UI JavaScript 】
- JAVA和SQL中时间的格式化知识
- 搜索结果红色php,bootstrap table搜索结果突出变红
- 插件学习:jquery.slimscroll.min.js
- php 对象object json,PHP对象转数组(Object转Array),Json转数组(Json转Array)的方法_PHP教程...
- MySQL实验七创建存储过程和函数