在开发中,我们期望消息的发送与业务系统进行解耦,这样做的好处是,可以是业务代码与消息系统的发送完全分离,不会因为消息发送的快慢程度而影响业务系统处理。因此,我们使用队列来完成消息的推送。
消息流程图:
① 创建消息类型队列
在之前我们将消息按类型分类,例如:财务消息、文章消息、审核消息等,同样,我们可以根据业务拆分为几个业务队列,用来存储消息推送的参数。
② 推送参数存入队列
在业务触发消息推送后,我们可以将推送的一些参数,使用func_get_args()获取参数并存入业务队列。
③ 将消息ID和推送目标用户存入推送渠道队列
在业务队列出队列后,我们可以将一些参数如:跳转信息、跳转参数等存入数据库,并将推送目标和消息ID存入渠道队列
④ 消息推送并记录推送结果
在渠道队列出队列后,我们根据渠道完成消息的推送,并记录推送结构。
下面我们进行数据库实体设计:
消息类型表 (message_type):
name
字段
数据类型
备注
msg_type_id
msg_type_id
int
消息类型主键,自增
消息类型名称
msg_