[发明专利]嵌入式设备高可用性定时器的实现方法及定时器有效
申请号: | 201410452803.0 | 申请日: | 2014-09-05 |
公开(公告)号: | CN104268015B | 公开(公告)日: | 2017-08-01 |
发明(设计)人: | 周鸣;吴红青;徐剑辉;刘益 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京捷诚信通专利事务所(普通合伙)11221 | 代理人: | 魏殿绅,庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种嵌入式设备高可用性定时器的实现方法及定时器,涉及嵌入式设备定时器领域,该方法包括以下步骤初始化定时器数据,创建定时任务链表;添加定时任务,从定时任务链表上查找是否有定时任务到,如果没有定时任务到,则继续检测定时任务,根据最快到达定时任务的时间或没有定时任务的时间,动态调整轮询定时任务链表的时间,再添加定时任务;判断定时任务是否为单次定时任务,如果是,则删除该定时任务,并删除定时任务链表节点;否则更新该定时任务,并修改定时任务链表节点的时间。本发明实现的定时器具有高精度、高效率、高安全性、高可用性,能满足各种嵌入式场合。 | ||
搜索关键词: | 嵌入式 设备 可用性 定时器 实现 方法 | ||
【主权项】:
一种嵌入式设备高可用性定时器的实现方法,其特征在于,包括以下步骤:S1、初始化定时器数据,创建定时任务链表;注册以定时任务的消息队列ID为键值的HASH表以及定时任务消息队列;获取消息队列ID,创建消息队列,将消息队列ID作为键值、消息队列地址作为Hash表的值插入到HASH表中;S2、添加定时任务,定时任务添加时,将直接执行任务标志、单次定时任务标志、消息队列ID、定时任务时间和回调函数传入定时器,并将该定时任务备份到备用主机;S3、定时器从定时任务链表上查找是否有定时任务到,如果没有定时任务到,则转到步骤S4;如果有定时任务到,则转到步骤S5;S4、如果没有定时任务到,则继续检测定时任务,根据最快到达定时任务的时间或没有定时任务的时间,动态调整轮询定时任务链表的时间,再返回到步骤S2;S5、如果有定时任务到,则根据添加定时任务时传入定时器的直接执行任务标志,来判断定时任务是否直接调用回调函数,如果定时任务直接调用回调函数,则转到步骤S6;否则转到步骤S7;S6、如果定时任务直接调用回调函数,根据添加定时任务时传入定时器的回调函数和回调函数参数,执行该回调函数;S7、如果定时任务不直接调用回调函数,则以定时任务的队列ID作为键值,从HASH表中查找消息队列的地址;根据添加定时任务时传入定时器的消息队列ID,在HASH表查找消息队列地址,转到步骤S8;S8、将定时任务消息发送到步骤S7中找到的消息队列地址,并根据该定时任务消息添加定时任务,转到步骤S9;S9、根据添加定时任务时传入定时器的单次定时任务标志,来判断定时任务是否为单次定时任务,如果是单次定时任务,则转到步骤S11;如果不是单次定时任务,则转到步骤S10;S10、如果不是单次定时任务,则更新该定时任务,并修改定时任务链表节点的时间;S11、如果是单次定时任务,则删除该定时任务,并删除定时任务链表节点。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410452803.0/,转载请声明来源钻瓜专利网。