[发明专利]一种发送消息的方法及其系统有效
申请号: | 201210009022.5 | 申请日: | 2012-01-12 |
公开(公告)号: | CN103207806A | 公开(公告)日: | 2013-07-17 |
发明(设计)人: | 韩翼 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 发送 消息 方法 及其 系统 | ||
1.一种发送消息的方法,其特征在于,应用在包括有数据库,与所述数据库连接的M个应用服务器和与所述数据库连接的至少N个消息任务服务器的系统中,其中,所述N个消息任务服务器中每个消息任务服务器包括有一个消息发送进程,M为大于或等于1的整数,所述方法包括:
判断所述N个消息发送进程中每个消息发送进程的状态是否是有效状态;
基于所述判断,从所述N个消息发送进程中确定K个消息发送进程的状为有效状态,其中,K为大于1但小于等于N的整数;
从所述K个消息发送进程中,确定一个消息发送进程作为主消息发送进程;
通过所述主消息发送进程启动所述主消息发送进程所在消息任务服务器中的消息调度器;
通过所述消息调度器,从所述数据库的消息队列中获得至少一个没有进程归属的待发送消息;
从所述K个消息发送进程中,为所述至少一个没有进程归属的待发送消息中每个待发送消息分配一个消息发送进程;
通过所述K个消息发送进程发送所述至少一个没有进程归属的待发送消息。
2.如权利要求1所述的方法,其特征在于,所述从所述K个消息发送进程中,确定一个消息发送进程作为主消息发送进程,具体包括:
检查K个消息发送进程中每个消息发送进程是否注册;
对于在所述K个消息发送进程中已经注册的消息发送进程,通过心跳线程判断所述已经注册的消息发送进程中每个消息发送进程的状态是暂停还是有效;
对于所述已经注册的消息发送进程中状态为暂停的消息发送进程,更新消息发送状态为有效;
对于在所述K个消息发送进程中未注册的消息发送进程,先注册所述未注册的消息发送进程中每个消息发送进程,然后通过心跳线程判断已经注册的所述未注册的消息发送进程中每个消息发送进程的状态是暂停还是有效状态;对于所述已经注册的所述未注册的消息发送进程中状态为暂停的消息发送进程,更新状态为有效;
通过检查,从所述K个消息发送进程中确定一个状态为有效的消息发送进程为主消息发送进程。
3.如权利要求1或2所述的方法,其特征在于,所述至少一个没有进程归属的待发送消息,具体包括:新的待发送消息和/或归属于心跳停止的消息发送进程的待发送消息。
4.如权利要求1或2所述的方法,其特征在于,在所述从所述K个消息发送进程中,为所述至少一个没有进程归属的待发送消息中每个待发送消息分配一个消息发送进程之后,还包括:
确定是否有心跳停止的消息发送进程;
在有一个或多个心跳停止的消息发送进程时,为所述一个或多个心跳停止消息发送进程中每个心跳停止的消息发送进程加锁。
5.如权利要求4所述的方法,其特征在于,在有一个或多个心跳停止消息发送进程时,为所述一个或多个心跳停止消息发送进程中每个心跳停止的消息发送进程加锁之后,所述方法还包括:
判断所述一个或多个心跳停止的消息发送进程中是否有消息发送进程已经启动成为状态为有效的消息发送进程;
在所述一个或多个心跳停止的消息发送进程中有已经启动成为状态为有效的消息发送进程时,为所述已经启动成为状态为有效的消息发送进程解锁;
在所述一个或多个心跳停止的消息发送进程中没有已经启动成为状态为有效的消息发送进程时,获得所述没有启动成为状态为有效的消息发送进程中的待发送消息;
给所述没有启动成为状态为有效的消息发送进程的待发送消息中每个待发送消息分配一个状态为有效的消息发送进程;
为所述没有启动成为状态为有效的消息发送进程解锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210009022.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:水硬性组合物用分散剂
- 下一篇:阿昔莫司膜控缓释微丸胶囊