DelayQueue实现订单的定时取消
来源:互联网 发布:网络建设需求 编辑:程序博客网 时间:2024/05/17 02:17
当订单定时取消需要修改数据库订单状态,但是怎么确定订单什么时候应该改变状态,解决方案有下面两种:
第一种,写个定时器去每分钟扫描数据库,这样更新及时,但是如果数据库数据量大的话,会对数据库造成很大的压力。
第二种,创建订单的时候再订单表里面创建一条记录,然后把这条记录保存到DelayQueue队列里面,并且用一个子线程不断地轮训这个出队的订单。然后进行订单状态修改的状态。
下面是这个方式的实现:
1)保存订单信息的Bean必须实现Delay接口。Delay里面有两个重要的方法。一个是compareTo,该方法是用来比较队列里面的订单的顺序。另外一个是getDelay,用来判断最前面订单出队的时间。
2)创建线程类。去调用对应的Service方法来操作数据库。
3.系统刚一启动就要把数据库里面未付款的订单加载到Queue里面,并且调用线程池生成子线程,这样可以确保子线程出异常后,不会影响到后续的订单处理。启动子线程不断监控要出队的订单。
4.当客户取消订单的时候,需要程序从Queue里面删除订单信息。
2 0
- DelayQueue实现订单的定时取消
- DelayQueue 实现简单的定时任务
- 定时取消订单,防止刷新重新开始
- DelayQueue实现的Comparable接口
- 如何实现下订单后一个小时后未付款的订单自动取消
- 实现3天订单自动取消
- php实现电脑的定时关机 取消关机等
- 使用Python实现淘宝订单定时付款
- 取消委外订单的多级审核
- 取消生产订单的报工
- 7天自动收货,30分钟不支付订单自动取消是如何实现的?
- 7天自动收货,30分钟不支付订单自动取消是如何实现的?
- Delayqueue (python 实现)
- DelayQueue实现延迟消息
- 利用spring实现特定时间后取消订单
- Java通过DelayQueue的实现多线程任务的阻塞队列
- 基于DelayQueue带有回调的超时缓存实现
- 订单取消插件@!
- tomcat 不带工程名字访问项目
- 关于我在360笔试中做到的一道毁三观的题(函数与变量同名)
- Spring学习-03:ApplicationContext加载配置文件的两种方式
- jQuery.off() 函数详解
- 历届试题 危险系数 求割点
- DelayQueue实现订单的定时取消
- 七星彩论坛
- 学习ros wiki 中rqt的使用随手记录(二)
- DX9与DX11shader编写中SV_POSITION与POSITION和SV_Target与COLOR之间的区别(二)
- 网易2017实习生招聘笔试题—奇怪的表达式求值
- 天梯赛总结
- 21天精通java基础之Day18常用类(Sting相关)
- 在Linux上安装jdk
- 使用jQuery Ajax调用豆瓣API