[发明专利]一种消息分发方法及装置有效
申请号: | 201711120287.1 | 申请日: | 2017-11-14 |
公开(公告)号: | CN107819855B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 陈剑波;周志波 | 申请(专利权)人: | 成都路行通信息技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 成都智弘知识产权代理有限公司 51275 | 代理人: | 丁亮;吴新祥 |
地址: | 610041 四川省成都市高新区天*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 分发 方法 装置 | ||
1.一种消息分发方法,其特征在于,所述方法包括:
接收任务请求,所述任务请求中的每一个任务均包括第一任务和第二任务;
根据所述任务建立任务队列和消息队列;
将所述任务队列中的任务与所述消息队列中的消息分别关联,以实现任务订阅;
根据所述消息判断所述任务是否影响返回结果,所述返回结果为响应时间延时;
若所述任务影响所述返回结果,则直接发布与所述任务相关联的消息,多线程执行与所述消息相关联的所有任务的第一任务;
若所述任务不影响所述返回结果,则返回响应后发布与所述任务相关联的消息,执行与所述消息相关联的所有任务的第一任务;
执行完所有第一任务后,发送包含请求成功或请求不成功的请求结果指令;
Django中间件捕捉所述请求结果指令,根据所述请求结果指令判断是否执行第二任务。
2.根据权利要求1所述的消息分发方法,其特征在于,所述根据所述任务建立任务队列包括:
将接收到的任务请求中的耗时任务分解为多个子任务;每一个所述子任务均包括第一任务和第二任务;所述耗时任务为影响响应返回时间的任务;
将接收到的任务和/或子任务按照接收顺序排列为任务队列。
3.根据权利要求2所述的消息分发方法,其特征在于,所述耗时任务包括网络请求任务、数据库操作任务和/或大量数据计算任务。
4.根据权利要求2所述的消息分发方法,其特征在于,所述耗时任务分解为多个子任务的依据为:各子任务是否影响返回结果以及各子任务所返回的结果之间是否存在干扰或依赖。
5.根据权利要求1所述的消息分发方法,其特征在于,所述消息队列包括有影响消息队列和/或无影响消息队列;所述有影响消息队列中的消息与所述任务队列中影响返回结果的任务相关联;所述无影响消息队列中的消息与所述任务队列中不影响返回结果的任务相关联。
6.根据权利要求1所述的消息分发方法,其特征在于,所述根据所述请求结果指令判断是否执行第二任务包括:
判断所述请求结果指令是否为请求成功;
若所述请求结果指令为请求成功,则判断与所述请求成功相对应的所述任务请求是否建立无影响消息队列;
若建立无影响消息队列,则执行所述无影响消息队列中消息所对应的第二任务;
若没有建立无影响消息队列,则结束任务。
7.根据权利要求6所述的消息分发方法,其特征在于,所述根据所述请求结果指令判断是否执行第二任务还包括:
若所述请求结果指令为请求不成功,则不执行所述消息队列中所有任务的第二任务。
8.根据权利要求1所述的消息分发方法,其特征在于,若所述任务不影响所述返回结果,则返回响应后发布与所述任务相关联的消息,并在所述消息队列中添加新消息。
9.根据权利要求1所述的消息分发方法,其特征在于,所述方法还包括:在任意时刻取消任务或与消息相对应的所有任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都路行通信息技术有限公司,未经成都路行通信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711120287.1/1.html,转载请声明来源钻瓜专利网。