订单超时自动取消

Java实现自动取消订单

这个功能我实际经验,民航某大航空公司的机票订单管理系统,订座45分钟付款,否者取消。
一:
1.quartz,每几分钟执行一次(根据订单处理速度,和订单生成情况)。
2.每次指定其中的更新条数,例如前1000条。
3.这种方式的确会影响性能,所以要是系统订单比较多,推荐独立的定时服务器。

二:
采用2种方式混合来处理,节省资源,保证结果的完全准确性。
1、采用主动触发的方式来取消订单。
订单的表里面,再加入有效时间字段,如果查询的时候,如果订单为已下单未处理状态,查询有效字段,如果该字段的值少于当前时间,说明订单是有效的,可以对订单进行下一步的操作,如果该字段的值大于当前时间,直接更新订单状态为取消。

2、每天凌晨定时处理(一条sql语句搞定),批量修改状态无效的订单。


个人总结:
方法一:
1订单表里,加入有效时间字段
2用户每次查询订单时,先对当日订单进行比较,更新,查询,显示结果
3使用quartz每天晚上12点对数据库进行更新

方法二:
1订单表里,加入有效时间字段
2增加独立服务器每分钟对数据库表前1000条进行更新

原生quartz
1添加QuartzManager.java
2添加Jobstsk.java
3ConfigServlet.java的load方法添加
QuartzManager.addJob("shopcancel", "com.util.Jobstsk", "30 * * * * ?");//启动定时任务

猜你喜欢

转载自rc123.iteye.com/blog/2181393