[发明专利]排队消息的并发处理无效
申请号: | 201280045928.0 | 申请日: | 2012-09-04 |
公开(公告)号: | CN103814557A | 公开(公告)日: | 2014-05-21 |
发明(设计)人: | J·霍塞;J·里夫 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅;李峥宇 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排队 消息 并发 处理 | ||
1.一种并发地处理来自消息队列的排队消息的流的计算机实现的方法,包括:
接收用以分配来自所述消息队列的排队消息以由线程处理的请求,所述排队消息属于已标识的消息流;以及
响应于确定属于已标识的所述消息流的另一消息当前不在被处理,分配所述排队消息以用于由所述线程处理。
2.根据权利要求1所述的方法,其中所述消息流是通过评估指定如何标识所述消息流的至少一个准则而被标识的。
3.根据权利要求1或权利要求2所述的方法,其中所述请求包括所述排队消息的标识符和已标识的所述消息流的名称。
4.根据任何前述权利要求所述的方法,还包括:
响应于确定属于已标识的所述消息流的另一消息当前正在被处理,分配所述排队消息中的不同的一个排队消息以由所述线程处理,所述不同的排队消息属于不同的消息流。
5.根据权利要求4所述的方法,还包括:
响应于分配所述排队消息中的所述不同的排队消息,在记录关于被阻止消息的信息的数据结构中存储关于对其而言接收到所述请求的所述排队消息的信息;以及
随后评估所述数据结构中存储的所述信息,以确定对其而言接收到所述请求的所述排队消息是否能够被解除阻止、并作为所述排队消息中的所述不同的排队消息而被分配给不同线程以由所述不同线程处理。
6.根据权利要求5所述的方法,其中响应于确定属于已标识的所述消息流的所述另一消息当前不再被处理,所述请求能够被解除阻止。
7.根据权利要求6所述的方法,其中所述数据结构中的条目被评估以在所述不同的线程检查所述排队消息的下一排队消息之前分配给所述不同的线程,从而对所述排队消息中的先前被阻止但现在被解除阻止的排队消息给予优先权以分配给所述不同的线程。
8.根据权利要求1所述的方法,其中确定属于已标识的所述消息流的另一消息当前不在被处理包括:确定已标识的所述消息流当前未被锁定。
9.根据权利要求1所述的方法,还包括:
响应于确定属于已标识的所述流的另一消息当前不在被处理,执行:
如果当前处理消息的线程的计数加当前处于所述等待状态的线程的计数小于活跃线程的总数,使得所述线程进入等待所述另一消息结束的等待状态,且然后分配所述排队消息以用于由所述线程处理;以及
否则分配所述线程以处理所述排队消息中的不同的排队消息。
10.根据权利要求9所述的方法,其中所述排队消息中的所述不同的排队消息是通过查阅一数据结构来选择的,所述数据结构标识所述排队消息中的先前已被评估以分配给不同线程、但未被分配给所述不同线程的排队消息。
11.一种用于并发地处理来自消息队列的排队消息的流的系统,包括:
计算机,包括处理器;以及
指令,使用所述处理器来可执行以实现功能,所述功能包括:
接收用以分配来自所述消息队列的排队消息以由线程处理的请求,所述排队消息属于已标识的消息流;以及
响应于确定属于已标识的所述消息流的另一消息当前不在被处理,分配所述排队消息以用于由所述线程处理。
12.根据权利要求11所述的系统,其中:
所述消息流是通过评估指定如何标识所述消息流的至少一个准则而被标识的;以及
所述请求包括所述排队消息的标识符和已标识的所述消息流的名称。
13.根据权利要求11或权利要求12所述的系统,其中所述功能还包括:
响应于确定属于已标识的所述消息流的另一消息当前正在被处理,分配所述排队消息中的不同的排队消息以由所述线程处理,所述不同的排队消息属于不同的消息流。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280045928.0/1.html,转载请声明来源钻瓜专利网。