[发明专利]一种利用时间转盘处理定时任务的方法和装置在审
| 申请号: | 201410844083.2 | 申请日: | 2015-08-04 |
| 公开(公告)号: | CN104503761A | 公开(公告)日: | 2015-07-29 |
| 发明(设计)人: | 李美欣 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 王康;李丹 |
| 地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 利用 时间 转盘 处理 定时 任务 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种利用时间转盘处理定时任务的方法和装置。
背景技术
在Linux系统中进行应用程序设计时,经常涉及到对定时任务的处理,尤其是在用户空间开发应用程序时。由于Linux系统没有提供类似与内核空间定时器的接口,现有技术通常在用户空间通常使用SIGALRM信号定时器接口alarm和setitimer等,或者对每个定时任务分配一个处理线程,并在处理任务之前,通过调用睡眠函数使该任务睡眠一会,从而达到定时处理的效果。
然而,上述两种方法均存在弊端:前者的弊端在于,信号定时器是在软中断上下文执行的,当被处理的任务存在睡眠或者因互斥锁而阻塞现象时,会导致程序异常;后者的弊端在于,每个定时任务需要单独占用一个线程,线程中调用的睡眠函数甚至也有可能占用一个线程,而用户空间中可运行的线程是有限的,且线程本身也需要消耗一定的资源成本,因此,该方法能处理的定时任务的数量是有限的,且需要耗费过多的资源。
发明内容
本发明提供了一种利用时间转盘处理定时任务的方法和装置,以解决现有技术中无法有效地处理定时任务的缺陷。
本发明提供了一种利用时间转盘处理定时任务的方法,所述时间转盘中设置有当前时间刻度指针,所述方法包括以下步骤:
当监听到时间间隔触发器事件后,在所述时间转盘上移动所述当前时间刻度指针;
获取所述当前时间刻度指针对应的转盘刻度上挂载的定时任务,将所述定时任务转移到任务处理线程或任务处理线程池进行处理。
可选地,所述获取所述当前时间刻度指针对应的转盘刻度上挂载的定时任务之前,还包括:
判断所述当前时间刻度指针对应的转盘刻度上是否挂载有定时任务;
所述获取所述当前时间刻度指针对应的转盘刻度上挂载的定时任务之前,具体为:
当所述当前时间刻度指针对应的刻度上挂载有定时任务时,获取所述当前时间刻度指针对应的转盘刻度上挂载的定时任务。
可选地,所述的方法,还包括:
将新的定时任务挂载到所述时间转盘的转盘刻度上。
可选地,所述将新的定时任务挂载到所述时间转盘的转盘刻度上,具体为:
根据所述新的定时任务的定时时间和所述当前时间刻度指针对应的转盘刻度,计算所述新的定时任务对应的转盘刻度,将所述新的定时任务挂载到计算得到的转盘刻度上。
可选地,所述时间转盘是通过数组或环形的链表结构实现的。
本发明还提供了一种利用时间转盘处理定时任务的装置,所述时间转盘中设置有当前时间刻度指针,所述装置包括:
监听模块,用于监听时间间隔触发器事件;
设置模块,用于在所述监听模块监听到时间间隔触发器事件后,在所述时间转盘上移动所述当前时间刻度指针;
获取模块,用于获取所述设置模块移动后的所述当前时间刻度指针对应的转盘刻度上挂载的定时任务;
转移模块,用于将所述获取模块获取到的所述定时任务转移到任务处理线程或任务处理线程池进行处理。
可选地,所述的装置,还包括:
判断模块,用于判断所述当前时间刻度指针对应的转盘刻度上是否挂载有定时任务;
所述获取模块,具体用于在所述判断模块判断出所述当前时间刻度指针对应的刻度上挂载有定时任务时,获取所述当前时间刻度指针对应的转盘刻度上挂载的定时任务。
可选地,所述的装置,还包括:
挂载模块,用于将新的定时任务挂载到所述时间转盘的转盘刻度上。
可选地,所述挂载模块,具体用于根据所述新的定时任务的定时时间和所述当前时间刻度指针对应的转盘刻度,计算所述新的定时任务对应的转盘刻度,将所述新的定时任务挂载到计算得到的转盘刻度上。
可选地,所述时间转盘是通过数组或环形的链表结构实现的。
本发明使用时间转盘达到了定时器的效果,并将对定时任务的处理放到线程上下文,能够处理存在睡眠和阻塞现象的任务,且无需针对任务数量的增加而增加线程,降低了对系统资源的耗费。
附图说明
图1为本发明实施例中的一种利用时间转盘处理定时任务的方法流程图;
图2为本发明实施例中的一种时间转盘的示意图;
图3为本发明实施例中的一种利用时间转盘处理定时任务的装置结构图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410844083.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件调试方法、相关设备及系统
- 下一篇:获取系统最高权限的方法及装置





