[发明专利]一种容错保序的事件调度方法及装置有效
申请号: | 201210022986.3 | 申请日: | 2012-02-02 |
公开(公告)号: | CN103246548A | 公开(公告)日: | 2013-08-14 |
发明(设计)人: | 刘可立;赵春刚;吴迪 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F11/07 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 牛峥;王丽琴 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 容错 事件 调度 方法 装置 | ||
1.一种容错保序的事件调度装置,其特征在于,包括请求队列模块、结果队列模块、阻塞队列模块、等待队列模块、错误队列模块和事件调度任务模块,
所述请求队列模块,用于以事件结点的形式存储外部任务发起的待处理事件;
所述结果队列模块,用于以事件结点的形式存储外部异步返回的事件处理结果;
所述阻塞队列模块,用于存储由于时序问题必须等待前序事件处理完成的事件结点;
所述等待队列模块,用于存储需要等待外部异步返回结果的事件结点;
所述错误队列模块,用于存储执行失败的事件结点;
所述事件调度任务模块,用于从请求队列模块中获取待处理事件,判断是否有冲突事件未执行完,若是,将待处理事件放入阻塞队列模块等待无冲突时执行;否则判断是否同步返回成功,若是,则将待处理事件放入等待队列模块,否则将待处理事件放入错误队列模块;
所述事件调度任务模块,还用于从结果队列模块中获取事件处理结果,并从等待队列模块中取出相匹配的等待事件结点,如果所述事件处理结果为成功,则执行阻塞队列模块中相冲突的事件结点;如果所述事件处理结果为失败,则将所述待处理事件放入错误队列模块。
2.根据权利要求1所述的装置,其特征在于,所述事件调度任务模块,还用于周期性地从错误队列模块中获取待处理事件,判断是否有冲突事件未执行完,若是,将待处理事件放入阻塞队列模块等待无冲突时执行;否则判断是否同步返回成功,若是,则将待处理事件放入等待队列模块,否则将待处理事件放入错误队列模块。
3.根据权利要求1所述的装置,其特征在于,该装置进一步包括空闲队列模块,用于预先分配固定数量的事件结点;当需求超过预分配事件结点数量时,从内存空间分配新的事件结点到空闲队列模块;当空闲队列模块中事件结点数大于预先分配的固定数量以及需求的事件结点数量时,则将多余的事件结点释放给内存空间;
所述请求队列模块用于在事件请求发起时,接收来自空闲队列模块的分配事件结点;
所述结果队列模块用于当外部异步返回的事件处理结果时,接收来自空闲队列的分配事件结点;还用于在所述事件调度任务模块从结果队列模块中获取事件处理结果,并从等待队列模块中取出相匹配的等待事件结点,如果所述事件处理结果为成功时,将所述事件处理结果对应的事件结点释放回空闲队列模块;
所述等待队列模块还用于在所述事件调度任务模块从结果队列模块中获取事件处理结果,并从等待队列模块中取出相匹配的等待事件结点,如果所述事件处理结果为成功时,将所述等待事件结点释放回空闲队列模块。
4.根据权利要求1-3任一项所述的装置,其特征在于,所述装置位于数据通信设备中。
5.一种容错保序的事件调度方法,其特征在于,该方法通过如权利要求1所述的装置实现,包括如下步骤:
A1、从请求队列模块中获取待处理事件,判断是否有冲突事件未执行完,若是,将待处理事件放入阻塞队列模块等待无冲突时执行;否则判断是否同步返回成功,若是,则将待处理事件放入等待队列模块,否则将待处理事件放入错误队列模块;
B1、从结果队列模块中获取事件处理结果,并从等待队列模块中取出相匹配的等待事件结点,如果所述事件处理结果为成功,则执行阻塞队列模块中相冲突的事件结点;如果所述事件处理结果为失败,则将所述待处理事件放入错误队列模块;
C1、判断错误队列处理定时器是否超时,若是,执行步骤D1,否则结束本流程;
D1、从错误队列模块中获取待处理事件,判断是否有冲突事件未执行完,若是,将待处理事件放入阻塞队列模块等待无冲突时执行;否则判断是否同步返回成功,若是,则将待处理事件放入等待队列模块,否则将待处理事件放入错误队列模块。
6.根据权利要求5所述的方法,其特征在于,步骤A1所述判断是否有冲突事件未执行完包括:
A11、判断等待队列中是否存在相关联事件结点,若是,转至步骤A14,否则执行步骤A12;
A12、判断错误队列中是否存在相关联事件结点,若是执行步骤d,否则执行步骤A13;
A13、返回请求事件结点可执行。
A14、返回请求事件结点不可执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210022986.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种转筒反应器
- 下一篇:一种用于变换反应的反应器