大型 Web 系统一般都是用什么技术做定时任务(调度)的?

2017-05-07 20:38:23 +08:00
 abcbuzhiming
比如,商城系统,用户下单 30 分钟后不付钱订单取消,商品回库存,这中间涉及到在特定时间点操作数据库,Web 系统一般采用什么方式来完成这种需求?
2079 次点击
所在节点    问与答
2 条回复
lecher
2017-05-07 23:42:06 +08:00
这事可大可小,如果库存根本没有售罄过,实际库存应该是以付款成功为准,随时补货就好了,很多淘宝店铺都是这样管理库存的。小商家哪有什么胆量强迫客户多长时间内不付款就不卖给你了,最多就是真付款又没有库存了,赶紧补货或者联系客户换货退款之类的。一件商品躺购物车几天再付款的概率,要比下单即刻付款的概率大非常多。

如果要考虑回滚库存的事情,那就不一定要优化到什么程度了。看抢购的订单量了。

订单量很小,建好索引,开定时任务每分钟取一次这种状态的超时订单回滚业务。

订单量有点,订单增加一个业务标识,下单、未付款、付款三个状态区分开。未付款额外开一个表做冗余数据,入库条件为下订单,出库条件为付款或超时回滚,交给定时任务跑查询状态。

订单量有不少,写单独的定时任务处理模块,上持久化的消息队列,涉及需要延时处理的任务都扔里面。

订单量特别多的话,那么有钱挖几个阿里的出来不是解决方案到落地代码都齐了吗。
ihuotui
2017-05-07 23:52:44 +08:00
当当开源的 job

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359723

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX