Skip to content

开平消息系统

概述

对于开放平台,消息推送主要有几个要求:

  1. 消息补推策略:可以自定义补推策略,主要是设定补推次数和间隔两个维度
  2. 消息格式:需要对消息体整体做一个哈希加密

消息系统

初始化

考虑到消息系统可能随时重启,初始化应该拉取所有待发送消息,重新放入timeout队列

消息订阅

开放平台消息统一订阅内部消息推送,收到推送后,根据开平消息注册表生成对应的开平消息,并放入timeout队列。

消息推送

消息到时,推送到指定地址,成功后消息即完成

消息补推

消息发送失败,并且符合补推条件,生成补推消息,重新投入队列。

技术方案

目前,Tornado比较符合消息系统的需求。Tornado本身是一个Main Loop,他一方面可以作为server接受http消息,另一方面本身维护了一个timeout队列,满足消息定时补推的场景。

数据结构

开平消息表

# tbl_open_msg

id
source_id
notify_url
content
to_send_time
sent_time
status
index

开放消息类型

订单

  • 订单创建
  • 订单删除
  • 订单修改
  • 订单状态变动:分拣中,配送中,已配送

商品

  • sku增删查改
  • 商品分类增删查改