关于网约车核心业务-推单相关设计整理

网约车核心业务推单相关设计和整理。

抢单模式

抢单推单.png
抢单抢单.png

自动派单模式

自动派单.png

手动派单模式

手动派单.png

一些说明

订单推送给司机(直接获取订单)/手动派单/司机点击接受订单

绑定司机

此处需要获取分布式锁,锁的资源为司机,因此可以用 司机ID 为锁的标识,绑定订单的司机时需使用 乐观锁方式 进行更新。

检查是否中止推单

  • 推荐使用 redis 进行标识是否终止订单推送,需要使用原子+过期特性。

用户下单

用户下单会发送多个消息

情况一: 自动派单模式

  • 发送自动派单消息
  • 发送取消订单消息(延迟消息)

情况二: 抢单模式

  • 发送抢单派单消息
  • 发送抢单启动消息(延迟消息)
  • 发送取消订单消息(延迟消息)

关于服务重启解决方案

  • 重启后进行订单扫描处理(分批次拉取模式)
  • 定时器核对订单状态,进行状态处理
  • 消息进行合法校验(超时丢弃,记录日志)
分享到