群发消息的功能

群发消息,还要看用户已读未读,还要可以选择批量发送,还可以发送的时候中断了可以继续,如何实现

阅读 1.4k
1 个回答

先拟定基础数据量如何,这里拟定基础数据量为:用户数10w

数据表设计:
messages -> 存放消息信息文本,和发送状态值(0=未开始,1=进行中,2=已中断,3=完成所有)
message_items -> 存放消息投放成功情况,这个表的设计是个学问,建议用衔邻表设计或者链路表设计

跑一个queue队列,该队列根据messages表的具体投放时间规定,触发投放(if关系)。

该队列不采用逐条发送(效率太低)而是采用chunk发送,比如chunk值为500,则代表每次发送给500个用户。

页面上,发送进度通过messages_items的统计。如果在页面上发起中断请求,messages的状态值变为2 。queue中也要监听这个值的变化,在下一次chunk数据之前判断值是否变化来决定是否继续执行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题