V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
abcbuzhiming
V2EX  ›  问与答

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

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

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

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

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

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

    订单量特别多的话,那么有钱挖几个阿里的出来不是解决方案到落地代码都齐了吗。
    ihuotui
        2
    ihuotui  
       2017-05-07 23:52:44 +08:00 via iPhone
    当当开源的 job
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2874 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:46 · PVG 22:46 · LAX 06:46 · JFK 09:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.