message

异步消息推送机制

正常异步消息唯一的task_id 取出执行机制与下相同

1.task_id 与用户或者群绑定单独作一个队列 user_id 绑定task_id
2.将task push 到异步队列
3.多进程循环 取出task,删除成功即执行该task 将该task放入已执行队列

4.插队的同时把,task id 放入重置队列
5.从队列取出执行完,若重置队列有该 task_id 重新加入到队列

6.个人pushManager 方法一轮推送完毕再把自己加入,异步队列(task_id)(轮询方法,) 每次推五分钟的
pop 取到 task_id 即执行 相应的task_message
执行完毕 检测插队队列有该task_id 即使队列task_id覆盖也不影响
因为单个用户绑定同一个task,某个用户上线需要即时推送消息插队,等同于提前推送他的消息,若消息较多即不断的插队

正在执行的时候若清掉task_id,则新一轮task_id插进来 成功会插两次队?

posted @ 2018-11-27 16:01  haha瓜  阅读(200)  评论(0编辑  收藏  举报