先拟定基础数据量如何,这里拟定基础数据量为:用户数10w数据表设计:messages -> 存放消息信息文本,和发送状态值(0=未开始,1=进行中,2=已中断,3=完成所有)message_items -> 存放消息投放成功情况,这个表的设计是个学问,建议用衔邻表设计或者链路表设计跑一个queue队列,该队列根据messages表的具体投放时间规定,触发投放(if关系)。该队列不采用逐条发送(效率太低)而是采用chunk发送,比如chunk值为500,则代表每次发送给500个用户。页面上,发送进度通过messages_items的统计。如果在页面上发起中断请求,messages的状态值变为2 。queue中也要监听这个值的变化,在下一次chunk数据之前判断值是否变化来决定是否继续执行。
先拟定基础数据量如何,这里拟定基础数据量为:用户数10w
数据表设计:
messages -> 存放消息信息文本,和发送状态值(0=未开始,1=进行中,2=已中断,3=完成所有)
message_items -> 存放消息投放成功情况,这个表的设计是个学问,建议用衔邻表设计或者链路表设计
跑一个queue队列,该队列根据messages表的具体投放时间规定,触发投放(if关系)。
该队列不采用逐条发送(效率太低)而是采用chunk发送,比如chunk值为500,则代表每次发送给500个用户。
页面上,发送进度通过messages_items的统计。如果在页面上发起中断请求,messages的状态值变为2 。queue中也要监听这个值的变化,在下一次chunk数据之前判断值是否变化来决定是否继续执行。