最佳实践 延迟队列干掉定时任务. 特别是跨表查询状态的定时任务

通过案例来讲两个事情
   1. 用流式干掉定时任务
   2. 如何选择合适的流.大流,小流

案例1
   背景:
        单车中都有报修的逻辑. 
原则:
    产品逻辑上尽量避免用退款来解决问题.
     把问题解决在前面.
故对于大部分的正常保修,要保证用户不需要支付.
  1. 开锁前保修,本身无费用
  2. 开锁后发现车辆有问题,关锁保修. 需要设置账单前1分钟内免费.
  3. 开锁后,骑行后已经产生了费用的用户.  
     三种策略:
     3.1 优先站在乘客利益角度: 有报修,直接减免. 会导致乘客占便宜,钻空子通过保修手段减免费用.
     3.2 优先站在公司利益角度: 乘客先投诉,投诉后再风控判断, 减免费用,或者走退款+优惠券逻辑
     3.3 中和乘客利益和公司利益: 增加乘客负担,需要乘客支付后,在进行退款.
   最终选择策略3
 实现方案:

1. 定时任务

扫描订单, 1.有效的保修单(通过风控判断) 2.有过支付. 目前两个状态是分离在两个系统的. 导致这个定时任务列表查询非常复杂. 先查再过滤.大量的查询被浪费,还要考虑流量问题. 并且集中在一定时间,凸点问题严重.

2. 流式

2.1 支付成功的流.

       支付成功后判断是否保修单.

2.2 报修的流

       报修的流,判断是否需要支付,是否支付成功. 如果否,放入到延迟队列中继续消费.


最终选择2.2的流,用小表去查大表.

案例2
    背景:
         单车中12小时内自动关闭掉订单.

    同样一个订单




   

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值