[发明专利]异步消息监控方法和装置有效
| 申请号: | 201710065908.4 | 申请日: | 2017-02-06 |
| 公开(公告)号: | CN108399120B | 公开(公告)日: | 2021-01-29 |
| 发明(设计)人: | 程春林 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;邓云鹏 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 异步 消息 监控 方法 装置 | ||
1.一种异步消息监控方法,包括:
通过主线程获取异步消息,将所述异步消息加入异步消息集合;
创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;
通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;
通过所述异步调用线程将所述标识对象传递到所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。
2.根据权利要求1所述的方法,其特征在于,所述记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息,包括:
通过所述标识对象轮询所述异步消息的回调的函数地址,检测所述回调的函数地址是否被释放;
若所述回调的函数地址未被释放,则通过所述标识对象获取并保存执行路径中回调的函数地址的状态信息,并轮询所述回调的函数地址的下一级的回调的函数地址;
若所述回调的函数地址被释放,则返回到所述回调的函数地址的上一级的回调的函数地址,判断回调操作是否结束;
若所述回调操作结束,则通过所述异步调用线程将所述标识对象传递所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。
3.根据权利要求2所述的方法,其特征在于,在通过所述标识对象获取并保存执行路径的状态信息之后,所述方法还包括:
获取所述异步消息的时间戳;
根据所述时间戳判断是否超时,若未超时,则执行所述轮询所述回调的函数地址的下一级的回调的函数地址的步骤,若超时,则执行所述通过所述标识对象获取所述异步消息的指针地址,执行所述异步消息回调的步骤。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述回调操作未结束,则继续执行通过所述标识对象轮询所述异步消息的回调的函数地址,检测所述回调的函数地址是否被释放的步骤。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述异步消息集合是否为空,若是,则结束,若否,则继续执行创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息的步骤。
6.根据权利要求1所述的方法,其特征在于,所述将所述标识对象注入到所述异步消息,包括:
通过挂钩函数建立所述标识对象与所述异步消息的映射关系。
7.一种异步消息监控装置,其特征在于,包括:
异步消息抓取模块,用于通过主线程获取异步消息,将所述异步消息加入异步消息集合;
标识对象注入模块,用于创建异步消息处理的异步调用线程,通过所述异步调用线程从所述异步消息集合中获取异步消息,创建与所述异步消息对应的标识对象,并将所述标识对象注入到所述异步消息;
回调执行模块,用于通过所述标识对象获取所述异步消息的指针地址,根据所述指针地址执行异步消息回调操作,记录所述异步消息回调操作的执行路径中的各个回调的函数地址的状态信息;
状态信息获取模块,用于通过所述异步调用线程将所述标识对象传递所述主线程,并销毁所述异步调用线程,读取所述标识对象以获取所述异步消息的执行路径中回调的函数地址的状态信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710065908.4/1.html,转载请声明来源钻瓜专利网。





