CN108255515B - 一种实现定时器服务的方法和装置 - Google Patents

一种实现定时器服务的方法和装置 Download PDF

Info

Publication number
CN108255515B
CN108255515B CN201810044326.2A CN201810044326A CN108255515B CN 108255515 B CN108255515 B CN 108255515B CN 201810044326 A CN201810044326 A CN 201810044326A CN 108255515 B CN108255515 B CN 108255515B
Authority
CN
China
Prior art keywords
timer
service
message
sending
service process
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810044326.2A
Other languages
English (en)
Other versions
CN108255515A (zh
Inventor
全佳
黄昌金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Teligen Communication Technology Co ltd
Original Assignee
Guangzhou Teligen Communication Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Teligen Communication Technology Co ltd filed Critical Guangzhou Teligen Communication Technology Co ltd
Priority to CN201810044326.2A priority Critical patent/CN108255515B/zh
Publication of CN108255515A publication Critical patent/CN108255515A/zh
Application granted granted Critical
Publication of CN108255515B publication Critical patent/CN108255515B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种实现定时器服务的方法和装置
技术领域
本发明涉及网络软件开发技术领域,特别是涉及一种实现定时器服务的方法和装置。
背景技术
在网络软件开发中,经常用到定时控制,比如超时处理、延时控制和定时任务等。尤其在网络通信开发中,对定时的需求很大。为了获得所需要的定时控制,需要在软件中进行准确而稳定的时间控制,实现的模块通常被称为定时器。定时器的实现一般有两种方法:硬件定时器和软件定时器。
硬件定时器指专门的硬件模块,能根据硬件时钟周期性发出中断信号触发软件处理,但是硬件定时器需要依赖硬件设计、资源有限,可移植性不好。
软件定时器是用软件方式来实现,一般可以使用操作***提供的定时器接口或只使用定时器算法来实现。操作***提供的定时器接口一般采用信号触发或启动线程来处理,对定时器的管理无法统一,对多模块协作开发和后期维护带来不便。所以软件项目一般都采用纯软件算法实现的定时器模块,封装标准接口,作为一个独立的模块应用到各业务模块开发中,大大降低了软件设计的复杂性,便于开发和维护。
现有软件架构设计中,一个应用进程中一般同时包含了业务模块和定时器模块,为了保证定时器准时触发,定时器模块在独立的线程中运行,而业务模块在其他线程中运行。
虽然为了提高定时器的效率,现已设计出多种适用于不同场景的定时器算法,例如基于最小堆、基于有序双向列表和基于时间轮的算法,但是还是需要经常扫描定时器列表,消耗进程的CPU资源,特别是当大量定时器存在时,定时器的开销就会影响正常业务。
定时器超时的时候,定时器模块在定时器线程中调用业务模块提供的超时处理函数,而超时处理函数可能会访问业务数据,这就必须考虑多线程模式下的安全保护,例如对共享资源的互斥锁、对状态的同步等问题,增加了业务流程的复杂度,同时互斥锁的使用也会增加***开销,降低进程的处理能力。
可见,如何在满足定时控制的需求下,降低定时控制对业务流程的影响,是本领域技术人员亟待解决的问题。
发明内容
本发明实施例的目的是提供一种实现定时器服务的方法和装置,可以在满足定时控制的需求下,降低定时控制对业务流程的影响,提升应用进程处理业务的性能。
为解决上述技术问题,本发明实施例提供一种实现定时器服务的方法,应用于定时器进程,所述方法包括:
接收业务进程发送的定时器添加请求;
依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;
当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。
可选的,还包括:
当所述定时器对象完成计时任务时,依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。
可选的,当所述定时模式为单次运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:
删除所述定时器对象。
可选的,当所述定时模式为周期运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:
将所述定时器对象清零,并重新开始计时任务。
可选的,在所述依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象之后,还包括:
向所述业务进程发送确认消息。
可选的,还包括:
接收所述业务进程发送的删除消息;
依据所述删除消息中携带的定时器编号,停止并删除相对应的定时器对象。
本发明实施例还提供了一种实现定时器服务的装置,应用于定时器进程,所述装置包括接收单元、配置单元、发送单元;
所述接收单元,用于接收业务进程发送的定时器添加请求;
所述配置单元,用于依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;
所述发送单元,用于当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。
可选的,还包括处理单元;所述处理单元,用于依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。
可选的,当所述定时模式为单次运行模式时,所述处理单元具体用于删除所述定时器对象。
可选的,当所述定时模式为周期运行模式时,所述处理单元具体用于将所述定时器对象清零,并重新开始计时任务。
可选的,所述发送单元还用于向所述业务进程发送确认消息。
可选的,还包括删除单元;
所述接收单元还用于接收所述业务进程发送的删除消息;
所述删除单元,用于依据所述删除消息中携带的定时器编号,停止并删除相对应的定时器对象。
本发明实施例还提供了一种实现定时器服务的方法,应用于业务进程,所述方法包括:
向定时器进程发送定时器添加请求;
接收所述定时器进程发送的超时消息,并调用与所述超时消息对应的超时处理函数。
可选的,还包括:
接收所述定时器进程发送的确认消息,并记录所述确认消息中携带的定时器编号和状态标识码。
本发明实施例还提供了一种实现定时器服务的装置,应用于业务进程,所述装置包括发送单元、接收单元和调用单元;
所述发送单元,用于向定时器进程发送定时器添加请求;
所述接收单元,用于接收所述定时器进程发送的超时消息;
所述调用单元,用于调用与所述超时消息对应的超时处理函数。
可选的,还包括记录单元;
所述接收单元还用于接收所述定时器进程发送的确认消息,并触发所述记录单元;所述记录单元,用于记录所述确认消息中携带的定时器编号和状态标识码。
由上述技术方案可以看出,定时器进程接收业务进程发送的定时器添加请求;依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;当所述定时器对象完成计时任务后,向所述业务进程发送超时消息。将定时器模块从业务进程中分离出来,以独立进程的方式运行,对于业务进程来说,定时器进程是一个异步任务,不会抢占资源,所以业务进程可以更专注处理业务流程,提高了业务进程处理性能。并且业务进程不需要为定时器进程创建线程,减少了线程锁带来的性能下降,简化了软件架构设计的难度,提高了开发效率并减轻后期维护难度。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种实现定时器服务的方法的信令图;
图2为本发明实施例提供的一种基于消息队列实现业务进程和定时器进程通信的流程图;
图3为本发明实施例提供的一种应用于定时器进程实现定时器服务的装置的结构示意图;
图4为本发明实施例提供的一种应用于业务进程实现定时器服务的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种实现定时器服务的方法。图1为本发明实施例提供的一种实现定时器服务的方法的信令图,该方法包括:
S101:业务进程向定时器进程发送定时器添加请求。
在本发明实施例中,为了避免定时器模块消耗业务进程的CPU资源,将定时器模块从业务进程中分离出来,以独立进程的方式运行,也即建立独立的定时器进程。
当业务进程需要调用定时器对象时,可以向定时器进程发送定时器添加请求。
在实际应用中,一个业务进程可能会调用多个定时器对象,为了便于管理,在每个业务进程中会设置一个定时器管理模块。该定时器管理模块的功能是记录正在运行的定时器对象,也即记录处于激活状态的定时器对象。除了定时器管理模块之外,在该业务进程中包含有执行业务的业务模块。
为了减少接口依赖,业务进程和定时器进程之间的通信可以通过一个消息队列传递。相应的,在业务进程和定时器进程中均包含有消息队列接口。
在本发明实施例中,业务进程和定时器进程之间通过消息队列传递消息,避免了接口依赖,便于现场运行时动态调整业务进程和定时器进程数量,***可以根据实际需要,很方便的进行扩容。
依据消息队列实现业务进程和定时器进程之间的通信过程如图2所示,业务进程中的业务模块调用本地的定时器管理模块增加一个定时器对象,该定时器对象的参数信息包括超时时间、超时处理函数、超时处理函数的参数等;业务进程中的定时器管理模块会将增加的参数信息记录下来,并为该定时器对象分配一个全局唯一的定时器编号,然后发送一个定时器添加请求到本地的消息队列接口中,该消息队列接口将该定时器添加请求发送到消息队列中。
在分布式***中,业务进程的个数可以有多个,为了便于***区分不同的业务进程,可以对每个业务进程设置其对应的一个业务进程编号。
在定时器添加请求可以携带有业务进程编号、定时器编号、超时时间和定时器模式等定时信息。
定时器添加请求定义如下,
struct AddTimerReqMsg
{
std::string pid;//业务进程编号
std::string tid;//定时器编号
int timeout;//超时时间,单位毫秒
int mode;//定时器模式
}
S102:定时器进程接收业务进程发送的定时器添加请求。
以消息队列实现业务进程和定时器进程之间的通信为例,每个定时器进程中均包含有消息队列接口,可以接收消息队列发送的定时器添加请求。
在分布式***中,定时器进程的个数可以有多个,当消息队列接收到某个业务进程发送的定时器添加请求时,可以依据预先设定的优先级顺序或者是负载均衡策略,从多个定时器进程中选取一个合适的定时器进程,并将定时器添加请求发送至该定时器进程的消息队列接口中。
S103:定时器进程依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象。
一个定时器进程中可以包含多个定时器对象,为了便于管理,在每个定时器进程中会设置一个定时器管理模块。该定时器管理模块的功能是配置业务进程所需的定时器对象。
结合上述对图2所示的通信过程的介绍,消息队列会将定时器添加请求推送到一个定时器进程的消息队列接口中,该消息队列接口接收到该请求后,将该请求传递给定时器进程中的定时器管理模块,定时器管理模块依据请求中携带的定时信息,配置相应的定时器对象。
定时信息可以包括定时器编号、超时时间和定时器模式,配置定时器对象,即将这些信息作为定时器对象的参数,此时该定时器对象处于激活状态,开始计时任务。
S104:当所述定时器对象完成计时任务时,定时器进程向所述业务进程发送超时消息。
定时器进程中的定时器扫描模块可以对定时器对象进行实时的扫描,以便于及时发现定时器对象是否达到超时时间。
当定时器对象达到超时时间时,为了便于业务进程及时获知定时任务已经完成,定时器进程会向业务进程发送超时消息。
超时消息中可以携带业务进程编号、定时器编号和超时次数等。
超时消息定义如下,
struct TimeoutMsg
{
std::string pid;//业务进程编号
std::string tid;//定时器编号
int cnt;//超时次数
}
S105:业务进程接收所述定时器进程发送的超时消息,并调用与所述超时消息对应的超时处理函数。
定时器进程向业务进程发送超时消息的具体过程,与业务进程向定时器进程发送定时器添加请求过程类似。
,定时器进程的定时器扫描模块发现有定时器对象超时,则将超时消息报告给定时器管理模块,定时器管理模块将超时消息发送到消息队列接口中,定时器进程的消息队列接口将超时消息发送到消息队列;消息队列将超时消息推送到业务进程的消息队列接口中;业务进程的消息队列接口收到超时消息后,将超时消息传递给定时器管理模块,业务进程的定时器管理模块依据超时消息中携带的定时器编号,可以查找到该定时器对象的参数信息,从而调用相应的超时处理函数通知业务模块。
由上述技术方案可以看出,定时器进程接收业务进程发送的定时器添加请求;依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;当所述定时器对象完成计时任务后,向所述业务进程发送超时消息。将定时器模块从业务进程中分离出来,以独立进程的方式运行,对于业务进程来说,定时器进程是一个异步任务,不会抢占资源,所以业务进程可以更专注处理业务流程,提高了业务进程处理性能。并且业务进程不需要为定时器进程创建线程,减少了线程锁带来的性能下降,简化了软件架构设计的难度,提高了开发效率并减轻后期维护难度。
在上述S103的介绍中提及在配置定时器对象时,该定时器对象会有其对应的定时模式,不同定时模式下定时器对象的处理流程不同,具体的,当定时器对象完成计时任务时,依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。
其中,定时模式可以包括单次运行模式和周期运行模式。
当定时模式为单次运行模式时,定时器对象完成计时任务后,该定时器对象不再具有使用价值,为了及时释放定时器对象占用的资源,当定时器对象完成计时任务时,可以从定时器进程中删除所述定时器对象。相应的,业务进程的定时器管理模块可以将之前记录的该定时器对象删除。
当定时模式为周期运行模式时,定时器对象完成计时任务后,后续还需要使用该定时器对象执行定时任务,因此,当定时器对象完成计时任务时,将所述定时器对象清零,并重新开始计时任务。
依据定时器对象的定时模式,对定时器对象进行删除或清零等处理,进一步完善了定时器服务,提升了定时器进程的资源利用率。
当定时器进程完成定时器对象的配置后,为了便于业务进程及时了解定时器对象的相关信息,定时器进程可以向业务进程发送确认消息。
其中,确认消息中可以包括业务进程编号、定时器编号和状态标识码。
确认消息定义如下:
struct AddTimerResMsg
{
std::string pid;//业务进程编号
std::string tid;//定时器编号
int status;//0表示成功,其他为错误码
}
状态标识码用于表示定时器进程是否顺利完成了定时器对象的配置,也即该定时器对象是否被激活。
在具体实现中,可以用数字0表示定时器对象被激活,也即当状态标识码为0时,则说明该定时器对象被激活;当状态标识码是除了0以外的其它形式时,则说明该定时器对象未被激活,此时该定时器对象无法执行定时任务。
业务进程接收到定时器进程发送的确认消息,记录所述确认消息中携带的定时器编号和状态标识码。依据状态标识码和定时器编号,便可以获知哪些定时器对象处于激活状态。
在实际应用中,可能会出现业务进程调用的定时器对象还未达到超时时间,业务进程中已经完成了相应的业务处理,此时不再需要定时器对象执行定时任务。针对该种情况,业务进程可以向定时器进程发送删除消息,定时器进程接收到该删除消息;依据所述删除消息中携带的定时器编号,停止并删除相对应的定时器对象。
其中,删除消息中可以包括业务进程编号和定时器编号。
删除消息定义如下:
struct DelTimerMsg
{
std::string pid;//业务进程编号
std::string tid;//定时器编号
}
业务进程向定时器进程发送删除消息,避免了定时器进程执行不必要的定时任务,并且可以及时释放定时器对象占用的资源,进一步提升了定时器进程的资源利用率。
图3为本发明实施例提供的一种实现定时器服务的装置的结构示意图,应用于定时器进程,所述装置包括接收单元31、配置单元32、发送单元33;
所述接收单元31,用于接收业务进程发送的定时器添加请求;
所述配置单元32,用于依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;
所述发送单元33,用于当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。
可选的,还包括处理单元;所述处理单元,用于依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。
可选的,当所述定时模式为单次运行模式时,所述处理单元具体用于删除所述定时器对象。
可选的,当所述定时模式为周期运行模式时,所述处理单元具体用于将所述定时器对象清零,并重新开始计时任务。
可选的,所述发送单元还用于向所述业务进程发送确认消息。
可选的,还包括删除单元;
所述接收单元还用于接收所述业务进程发送的删除消息;
所述删除单元,用于依据所述删除消息中携带的定时器编号,停止并删除相对应的定时器对象。
图3所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,定时器进程的接收单元接收业务进程发送的定时器添加请求;定时器进程的配置单元,依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;定时器进程的发送单元,用于当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。将定时器模块从业务进程中分离出来,以独立进程的方式运行,对于业务进程来说,定时器进程是一个异步任务,不会抢占资源,所以业务进程可以更专注处理业务流程,提高了业务进程处理性能。并且业务进程不需要为定时器进程创建线程,减少了线程锁带来的性能下降,简化了软件架构设计的难度,提高了开发效率并减轻后期维护难度。
图4为本发明实施例提供的一种实现定时器服务的装置的结构示意图,应用于业务进程,所述装置包括发送单元41、接收单元42和调用单元43;
所述发送单元41,用于向定时器进程发送定时器添加请求;
所述接收单元42,用于接收所述定时器进程发送的超时消息;
所述调用单元43,用于调用与所述超时消息对应的超时处理函数。
可选的,还包括记录单元;
所述接收单元还用于接收所述定时器进程发送的确认消息,并触发所述记录单元;所述记录单元,用于记录所述确认消息中携带的定时器编号和状态标识码。
图4所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,业务进程的发送单元向定时器进程发送定时器添加请求;业务进程的接收单元接收定时器进程发送的超时消息;业务进程的调用单元,调用与超时消息对应的超时处理函数。对于业务进程来说,定时器进程是一个异步任务,不会抢占资源,所以业务进程可以更专注处理业务流程,提高了业务进程处理性能。并且业务进程不需要为定时器进程创建线程,减少了线程锁带来的性能下降,简化了软件架构设计的难度,提高了开发效率并减轻后期维护难度。
以上对本发明实施例所提供的一种实现定时器服务的方法和装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

Claims (10)

1.一种实现定时器服务的方法,其特征在于,应用于定时器进程,所述方法包括:
接收业务进程发送的定时器添加请求;业务进程和定时器进程之间的通信通过一个消息队列传递;当消息队列接收到一个业务进程发送的定时器添加请求时,依据预先设定的优先级顺序或者是负载均衡策略,从多个定时器进程中选取一个定时器进程,并将定时器添加请求发送至选取出的定时器进程的消息队列接口中;
依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;
当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。
2.根据权利要求1所述的方法,其特征在于,还包括:
当所述定时器对象完成计时任务时,依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理。
3.根据权利要求2所述的方法,其特征在于,当所述定时模式为单次运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:
删除所述定时器对象。
4.根据权利要求2所述的方法,其特征在于,当所述定时模式为周期运行模式时,所述依据所述定时器对象的定时模式,对所述定时器对象进行相应的处理包括:
将所述定时器对象清零,并重新开始计时任务。
5.根据权利要求1-4任意一项所述的方法,其特征在于,在所述依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象之后,还包括:
向所述业务进程发送确认消息。
6.根据权利要求1-4任意一项所述的方法,其特征在于,还包括:
接收所述业务进程发送的删除消息;
依据所述删除消息中携带的定时器编号,停止并删除相对应的定时器对象。
7.一种实现定时器服务的装置,其特征在于,应用于定时器进程,所述装置包括接收单元、配置单元、发送单元;
所述接收单元,用于接收业务进程发送的定时器添加请求;业务进程和定时器进程之间的通信通过一个消息队列传递;当消息队列接收到一个业务进程发送的定时器添加请求时,依据预先设定的优先级顺序或者是负载均衡策略,从多个定时器进程中选取一个定时器进程,并将定时器添加请求发送至选取出的定时器进程的消息队列接口中;
所述配置单元,用于依据所述定时器添加请求中携带的定时信息,配置相应的定时器对象;
所述发送单元,用于当所述定时器对象完成计时任务时,向所述业务进程发送超时消息。
8.一种实现定时器服务的方法,其特征在于,应用于业务进程,所述方法包括:
向定时器进程发送定时器添加请求;业务进程和定时器进程之间的通信通过一个消息队列传递;当消息队列接收到一个业务进程发送的定时器添加请求时,依据预先设定的优先级顺序或者是负载均衡策略,从多个定时器进程中选取一个定时器进程,并将定时器添加请求发送至选取出的定时器进程的消息队列接口中;
接收所述定时器进程发送的超时消息,并调用与所述超时消息对应的超时处理函数。
9.根据权利要求8所述的方法,其特征在于,还包括:
接收所述定时器进程发送的确认消息,并记录所述确认消息中携带的定时器编号和状态标识码。
10.一种实现定时器服务的装置,其特征在于,应用于业务进程,所述装置包括发送单元、接收单元和调用单元;
所述发送单元,用于向定时器进程发送定时器添加请求;业务进程和定时器进程之间的通信通过一个消息队列传递;当消息队列接收到一个业务进程发送的定时器添加请求时,依据预先设定的优先级顺序或者是负载均衡策略,从多个定时器进程中选取一个定时器进程,并将定时器添加请求发送至选取出的定时器进程的消息队列接口中;
所述接收单元,用于接收所述定时器进程发送的超时消息;
所述调用单元,用于调用与所述超时消息对应的超时处理函数。
CN201810044326.2A 2018-01-17 2018-01-17 一种实现定时器服务的方法和装置 Active CN108255515B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810044326.2A CN108255515B (zh) 2018-01-17 2018-01-17 一种实现定时器服务的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810044326.2A CN108255515B (zh) 2018-01-17 2018-01-17 一种实现定时器服务的方法和装置

Publications (2)

Publication Number Publication Date
CN108255515A CN108255515A (zh) 2018-07-06
CN108255515B true CN108255515B (zh) 2021-02-02

Family

ID=62741388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810044326.2A Active CN108255515B (zh) 2018-01-17 2018-01-17 一种实现定时器服务的方法和装置

Country Status (1)

Country Link
CN (1) CN108255515B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114647696A (zh) * 2020-12-17 2022-06-21 中兴通讯股份有限公司 一种定时器***及方法
CN112817666B (zh) * 2021-01-27 2023-07-21 北京字跳网络技术有限公司 定时方法、装置、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02245938A (ja) * 1989-03-20 1990-10-01 Fujitsu Ltd ソフトウェア処理中のタイマ処理方式
CN1584842A (zh) * 2004-06-09 2005-02-23 中兴通讯股份有限公司 一种实现计算机***应用服务器的方法
CN101014049A (zh) * 2007-02-14 2007-08-08 中兴通讯股份有限公司 一种终端无线通信协议栈软件定时器管理方法
CN101446911A (zh) * 2009-01-06 2009-06-03 中兴通讯股份有限公司 一种分时处理的方法和装置
US8220001B2 (en) * 2009-02-13 2012-07-10 Oracle International Corporation Adaptive cluster timer manager
US9032404B2 (en) * 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100479390C (zh) * 2007-03-29 2009-04-15 华为技术有限公司 一种分布式***定时方法及***
CN101730137B (zh) * 2008-10-31 2012-04-04 华为技术有限公司 数据处理方法及***
CN101719080B (zh) * 2009-12-25 2014-03-26 北京网御星云信息技术有限公司 多核定时器实现方法及***
CN105528246A (zh) * 2015-12-07 2016-04-27 厦门雅迅网络股份有限公司 一种基于动态计时周期的进程内定时器管理方法及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02245938A (ja) * 1989-03-20 1990-10-01 Fujitsu Ltd ソフトウェア処理中のタイマ処理方式
US9032404B2 (en) * 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
CN1584842A (zh) * 2004-06-09 2005-02-23 中兴通讯股份有限公司 一种实现计算机***应用服务器的方法
CN101014049A (zh) * 2007-02-14 2007-08-08 中兴通讯股份有限公司 一种终端无线通信协议栈软件定时器管理方法
CN101446911A (zh) * 2009-01-06 2009-06-03 中兴通讯股份有限公司 一种分时处理的方法和装置
US8220001B2 (en) * 2009-02-13 2012-07-10 Oracle International Corporation Adaptive cluster timer manager

Also Published As

Publication number Publication date
CN108255515A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN111782360B (zh) 分布式任务调度方法及装置
CA3168286A1 (en) Data flow processing method and system
CN101142568B (zh) 用于调度设备管理的***和方法
EP3432159A1 (en) Garbage collection method and device
JPS61500751A (ja) 多重プロセシングシステムのプログラムプロセスを停止するための方法
CN106533805A (zh) 一种微服务请求处理方法、微服务控制器及微服务架构
CN108089915B (zh) 基于消息队列的业务控件化处理的方法及***
US7451446B2 (en) Task supervision
US11327794B2 (en) Periodic task execution in an automated context
CN111064789B (zh) 数据迁移的方法和***
CN109710416B (zh) 资源调度方法及装置
CN108255515B (zh) 一种实现定时器服务的方法和装置
US10491452B2 (en) Method and system for clustered real-time correlation of trace data fragments describing distributed transaction executions
CN102385536B (zh) 一种实现并行计算的方法及***
US10122602B1 (en) Distributed system infrastructure testing
CN102314382A (zh) 一种紧急探查***信息的方法及模块
CN114840318A (zh) 一种多进程抢占硬件key加解密资源的调度方法
CN109697112B (zh) 分布式集约化一站式作业***和实现方法
CN110287159B (zh) 一种文件处理方法及装置
CN113268318A (zh) 一种任务调度的方法和分布式***
CN116599828A (zh) 任务执行方法和装置、存储介质及电子设备
CN110928630A (zh) 应用程序窗口的激活控制方法、装置、设备及存储介质
CN111767122A (zh) 分布式任务调度管理方法和装置
CN101895519A (zh) 服务处理方法和装置
CN115190052A (zh) 一种长连接的管理方法、***和控制单元

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant