一种实现定时器服务的方法和装置制造方法及图纸

技术编号:18398041 阅读:120 留言:0更新日期:2018-07-08 19:08
本发明专利技术实施例公开了一种实现定时器服务的方法和装置,定时器进程接收业务进程发送的定时器添加请求;依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;当所述定时器对象完成计时任务后,向所述业务进程发送超时消息。将定时器模块从业务进程中分离出来,以独立进程的方式运行,对于业务进程来说,定时器进程是一个异步任务,不会抢占资源,所以业务进程可以更专注处理业务流程,提高了业务进程处理性能。并且业务进程不需要为定时器进程创建线程,减少了线程锁带来的性能下降,简化了软件架构设计的难度,提高了开发效率并减轻后期维护难度。

【技术实现步骤摘要】
一种实现定时器服务的方法和装置
本专利技术涉及网络软件开发
,特别是涉及一种实现定时器服务的方法和装置。
技术介绍
在网络软件开发中,经常用到定时控制,比如超时处理、延时控制和定时任务等。尤其在网络通信开发中,对定时的需求很大。为了获得所需要的定时控制,需要在软件中进行准确而稳定的时间控制,实现的模块通常被称为定时器。定时器的实现一般有两种方法:硬件定时器和软件定时器。硬件定时器指专门的硬件模块,能根据硬件时钟周期性发出中断信号触发软件处理,但是硬件定时器需要依赖硬件设计、资源有限,可移植性不好。软件定时器是用软件方式来实现,一般可以使用操作系统提供的定时器接口或只使用定时器算法来实现。操作系统提供的定时器接口一般采用信号触发或启动线程来处理,对定时器的管理无法统一,对多模块协作开发和后期维护带来不便。所以软件项目一般都采用纯软件算法实现的定时器模块,封装标准接口,作为一个独立的模块应用到各业务模块开发中,大大降低了软件设计的复杂性,便于开发和维护。现有软件架构设计中,一个应用进程中一般同时包含了业务模块和定时器模块,为了保证定时器准时触发,定时器模块在独立的线程中运行,而业务模块在其他线程中运行。虽然为了提高定时器的效率,现已设计出多种适用于不同场景的定时器算法,例如基于最小堆、基于有序双向列表和基于时间轮的算法,但是还是需要经常扫描定时器列表,消耗进程的CPU资源,特别是当大量定时器存在时,定时器的开销就会影响正常业务。定时器超时的时候,定时器模块在定时器线程中调用业务模块提供的超时处理函数,而超时处理函数可能会访问业务数据,这就必须考虑多线程模式下的安全保护,例如对共享资源的互斥锁、对状态的同步等问题,增加了业务流程的复杂度,同时互斥锁的使用也会增加系统开销,降低进程的处理能力。可见,如何在满足定时控制的需求下,降低定时控制对业务流程的影响,是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种实现定时器服务的方法和装置,可以在满足定时控制的需求下,降低定时控制对业务流程的影响,提升应用进程处理业务的性能。为解决上述技术问题,本专利技术实施例提供一种实现定时器服务的方法,应用于定时器进程,所述方法包括:接收业务进程发送的定时器添加请求;依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。可选的,还包括:当所述定时器对象完成计时任务时,依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。可选的,当所述定时模式为单次运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:删除所述定时器对象。可选的,当所述定时模式为周期运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:将所述定时器对象清零,并重新开始计时任务。可选的,在所述依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象之后,还包括:向所述业务进程发送确认消息。可选的,还包括:接收所述业务进程发送的删除消息;依据所述删除消息中携带的定时器编号,停止并删除相对应的定时器对象。本专利技术实施例还提供了一种实现定时器服务的装置,应用于定时器进程,所述装置包括接收单元、配置单元、发送单元;所述接收单元,用于接收业务进程发送的定时器添加请求;所述配置单元,用于依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;所述发送单元,用于当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。可选的,还包括处理单元;所述处理单元,用于依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。可选的,当所述定时模式为单次运行模式时,所述处理单元具体用于删除所述定时器对象。可选的,当所述定时模式为周期运行模式时,所述处理单元具体用于将所述定时器对象清零,并重新开始计时任务。可选的,所述发送单元还用于向所述业务进程发送确认消息。可选的,还包括删除单元;所述接收单元还用于接收所述业务进程发送的删除消息;所述删除单元,用于依据所述删除消息中携带的定时器编号,停止并删除相对应的定时器对象。本专利技术实施例还提供了一种实现定时器服务的方法,应用于业务进程,所述方法包括:向定时器进程发送定时器添加请求;接收所述定时器进程发送的超时消息,并调用与所述超时消息对应的超时处理函数。可选的,还包括:接收所述定时器进程发送的确认消息,并记录所述确认消息中携带的定时器编号和状态标识码。本专利技术实施例还提供了一种实现定时器服务的装置,应用于业务进程,所述装置包括发送单元、接收单元和调用单元;所述发送单元,用于向定时器进程发送定时器添加请求;所述接收单元,用于接收所述定时器进程发送的超时消息;所述调用单元,用于调用与所述超时消息对应的超时处理函数。可选的,还包括记录单元;所述接收单元还用于接收所述定时器进程发送的确认消息,并触发所述记录单元;所述记录单元,用于记录所述确认消息中携带的定时器编号和状态标识码。由上述技术方案可以看出,定时器进程接收业务进程发送的定时器添加请求;依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;当所述定时器对象完成计时任务后,向所述业务进程发送超时消息。将定时器模块从业务进程中分离出来,以独立进程的方式运行,对于业务进程来说,定时器进程是一个异步任务,不会抢占资源,所以业务进程可以更专注处理业务流程,提高了业务进程处理性能。并且业务进程不需要为定时器进程创建线程,减少了线程锁带来的性能下降,简化了软件架构设计的难度,提高了开发效率并减轻后期维护难度。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种实现定时器服务的方法的信令图;图2为本专利技术实施例提供的一种基于消息队列实现业务进程和定时器进程通信的流程图;图3为本专利技术实施例提供的一种应用于定时器进程实现定时器服务的装置的结构示意图;图4为本专利技术实施例提供的一种应用于业务进程实现定时器服务的装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本专利技术保护范围。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。接下来,详细介绍本专利技术实施例所提供的一种实现定时器服务的方法。图1为本专利技术实施例提供的一种实现定时器服务的方法的信令图,该方法包括:S101:业务进程向定时器进程发送定时器添加请求。在本专利技术实施例中,为了避免定时器模块消耗业务进程的CPU资源,将定时器模块从业务进程中分离出来,以独立进程的方式运行,也即建立独立的定时器进程。当业务进程需要调用定时器对象时,可以向定时器进程发送定时器添加请求。在实际应用中,一个业务进程可能会调用多个定时器对象,为了便于管理,在每个业本文档来自技高网
...

【技术保护点】
1.一种实现定时器服务的方法,其特征在于,应用于定时器进程,所述方法包括:接收业务进程发送的定时器添加请求;依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。

【技术特征摘要】
1.一种实现定时器服务的方法,其特征在于,应用于定时器进程,所述方法包括:接收业务进程发送的定时器添加请求;依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。2.根据权利要求1所述的方法,其特征在于,还包括:当所述定时器对象完成计时任务时,依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。3.根据权利要求2所述的方法,其特征在于,当所述定时模式为单次运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:删除所述定时器对象。4.根据权利要求2所述的方法,其特征在于,当所述定时模式为周期运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:将所述定时器对象清零,并重新开始计时任务。5.根据权利要求1-4任意一项所述的方法,其特征在于,在所述依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象之后,还包括:向所述业务进程发送确认消息。6.根据权利要求1-4任意一项所述的方法,其特征在于,还包括:接收所述业务进程...

【专利技术属性】
技术研发人员:全佳黄昌金
申请(专利权)人:广州汇智通信技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1