-
Java实现3天订单自动取消30
我目前的业务如下:
有一个订票的业务,当用下了订单后未付款。
那么这个订单在3天后会自动被取消。
用户下单后付了款,我需要在活动提前一天,或者3天进行针对提醒
上面的业务都是需要时时的轮询的,我想过用spring的job来做,但是由于没做过不知道这样是不是太好资源了,万一订单大的话,服务器会不会趴掉,
请问有没有更好的办法,或者能否告知目前大型电商网站,或者12306,小米搞销售时规定少小时必须付款,如果没有付款则自动取消是如何实现的
感激不尽。
说的在简单点,就是类似本站的15天自动结贴2014年6月20日 00:42
8个答案 按时间排序 按投票排序
-
采用2种方式混合来处理,保证结果的完全准确性。
1、采用主动触发的方式来取消订单。
订单的表里面,再加入有效时间字段,如果查询的时候,如果订单为已下单未处理状态,查询有效字段,如果该字段的值少于当前时间,说明订单是有效的,可以对订单进行下一步的操作,如果该字段的值大于当前时间,直接更新订单状态为取消。
2、每天凌晨定时处理(一条sql语句搞定),订单有效时间截止昨天晚上23:59:59秒的非已下单未处理订单,批量状态改成无效。
混合处理的好处:
1、节省资源
2、显示结果的准确性。2014年6月24日 17:28
-
这个功能我实际经验,民航某大航空公司的机票订单管理系统,订座45分钟付款,否者取消。
1.quartz,每几分钟执行一次(根据订单处理速度,和订单生成情况)。
2.没次指定其中的更新条数,例如前1000条。
3.这种方式的确会影响性能,所以要是系统订单比较多,推荐独立的定时服务器。2014年6月23日 13:59
-
1、可以创建一个queue(LinkedBlockingQueue),当有新的订单时将该订单放入queue,(这里可以保证该queue是按照过期时间顺序排列的,较后的对象会更晚过期)。
2、另起一个线程A,对该queue读,读到一个尚未过期且未完成的订单则计算离过期的时间xx毫秒,然后将线程A进行sleep(xx),或者wait(xx);随你喜欢了。读到已完成的订单则直接poll(),读到未完成的订单就让它过期掉就好了。
3、可能出现的问题:一些已预订并且已完成的订单可能在3天之内一直存在于该queue中,对内存造成不必要的负担。如果希望能及时清理掉的话,可能需要自己实现该queue,毕竟队列里的内容都是有序的,根据需要移除订单的生成时间,用一个二分法查找是可以很快定位到该对象的。基于链表实现的queue需要移除该链表的一个元素对楼主肯定不会有什么问题吧。
2014年6月20日 11:33
-
定时调度可以用,但只要每天执行一次就行了,如果订单量非常大,轮一次都要好久。所以每天半夜轮一次就行了,然后统一执行,过期的update掉,快过期的提醒用户。
至于用户那边的订单状态显示,用户查询后你可以做个处理嘛,大于3天的就给他显示订单失效,(但其实数据库里面订单状态还是正常的,需要等到晚上才会统一update掉)
http://blog.csdn.net/oracle_microsoft/article/details/4412502
这是定时调度的例子,说的挺细挺傻瓜的。2014年6月20日 09:27
-
应该可以用quartz做吧,设置定时任务,每天或者每小时或者每分钟去检测是不是有超过3天未付款的账单,如果有,就取消(也就是删除),如果他的订单时间大于服务器时间2天,然后就给他发提醒
2014年6月20日 08:28
相关推荐
根据用户输入预订信息生成订单,订单自动维护信息有订单编号,订单状态。用户输入信息保存到订单中,订单价格根据房间类型,数量,时间计算好保存到订单中。初始订单状态为预订。 注意酒店客房数量不足情况,如果客...
Java实现Web应用中的定时任务 Java实现Web应用中的定时任务是一个非常重要的功能,在当前...Java实现Web应用中的定时任务是一个非常重要的功能,可以指定一个未来的时间范围执行一定任务,提高系统的自动化和智能化。
例如,用户下单后超过2天未支付的订单应当自动取消。 ##### 3.2 实现方式:Spring Task - **Spring Task简介**: Spring Boot提供了一个简单易用的定时任务框架,即Spring Task,用于实现轮询扫描等功能。 - **配置...
1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 ...
1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) ...
1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 ...
1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符 实例2 自动提升 9 实例3 自动转换 10 ...
1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 ...
毕业设计javajsp羽毛球馆管理系统ssh-qlkrp源码含文档工具包 后台是ssh框架,页面是jsp,数据库mysql,jdk1.8,开发工具用ecplise、myecplise、sts、idea都可以 会员 1. 会员信息查看; 2. 会员信息修改; 3. ...
JSPGOU一直以来都和jeecms、jeebbs一样,是收费软件,但是从...2.新增24小时未支付订单,自动取消 2.修复会员中心积分 3.修复购物车 4.修复货到付款 4.修复分类查询分页问题 5.修复商品上下架问题 4.修复在线客服
1. **支付订单超时**:创建订单后,如果30分钟内未完成支付,系统自动取消订单。 2. **退款处理**:用户申请退款后,如果商家在3天内未响应,系统自动介入处理。 **实现延迟队列的逻辑:** 1. 生产者(P)发布消息...
如果您希望在执行自动更新时收到通知,请按以下步骤操作:在“工具”菜单中选择“首选项”、“自动更新”,然后取消选择“自动下载和安装软件更新”。 d) 消息中心:使用消息中心,RealPlayer 软件可以自动与 RN ...