定时提醒方法、装置和计算机程序介质与流程

文档序号:18898851发布日期:2019-10-18 21:39阅读:190来源:国知局
定时提醒方法、装置和计算机程序介质与流程

本公开涉及计算机领域,具体涉及一种定时提醒方法、装置、和计算机程序介质。



背景技术:

现有技术的定时提醒中,业务在需要定时的时候,下定时器任务。业务所在的业务框架周期性检查定时器任务是否到期。如果到期,则进行定时回调,即向下定时器任务的业务进行定时提醒。

现有技术的定时提醒与业务框架强耦合,一旦脱离了业务框架,则不能进行定时提醒。而且,定时器任务到期回调时采用的协议固定,无法通用。如果设备不支持该协议,则无法正常进行定时器回调,从而不能进行定时提醒。



技术实现要素:

本公开的一个目的在于提供一种定时提醒技术,它能使定时器回调不再受限于业务框架和协议。

根据本公开实施例的第一方面,公开了一种定时提醒方法,包括:

将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置;

响应于监测到定时器任务到期,利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调,以进行定时提醒。

根据本公开实施例的第二方面,公开了一种定时提醒装置,包括:

第一设置单元,用于将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置;

定时器回调单元,用于响应于监测到定时器任务到期,利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调,以进行定时提醒。

根据本公开实施例的第三方面,公开了一种定时提醒装置,包括:

存储器,存储有计算机可读指令;

处理器,读取存储器存储的计算机可读指令,以执行权利要求如上所述的方法。

根据本公开实施例的第四方面,公开了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的方法。

本公开实施例中,当业务需要定时的时候,不仅设置定时器任务,还将对应的定时器回调协议信息和业务路由信息一起设置。这样,一旦监测到定时器任务到期,可以从设置的对应的业务路由信息得到需要定时的业务的路由,按照该路由找到该业务,并按照设置的对应的定时器回调协议信息,向找到的业务发协议数据流,完成定时器回调。这样,无论使用任何定时器回调协议,都能参照设置好的定时器回调协议信息和业务路由信息,实现定时器回调,使定时器回调不再受限于业务框架和协议。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。

图1示出根据本公开一示例实施方式的定时提醒方法应用的环境的构架图。

图2a-c示出根据本公开3个不同示例实施方式的定时提醒方法的示意图。

图3示出根据本公开一示例实施方式的定时提醒方法的流程图。

图4示出根据本公开一示例实施方式的定时提醒方法的流程图。

图5示出根据本公开一示例实施方式的定时提醒方法的流程图。

图6示出根据本公开一示例实施方式的步骤320的具体流程图。

图7示出根据本公开一示例实施方式的定时提醒装置的框图。

图8示出根据本公开一示例实施方式的定时提醒装置的框图。

图9示出根据本公开一示例实施方式的定时提醒装置应用在规定游戏时间的游戏应用场景的示意图。

图10示出根据本公开一示例实施方式的定时提醒装置的硬件结构图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。

附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

图1示出根据本公开一示例实施方式的定时提醒方法应用的环境的构架图。

图1中的业务平台10是指需要应用根据本公开实施例的定时提醒方法的应用所位于的平台,它可以是单个设备,也可以是由若干设备组成的网络(例如局域网、云等)。

业务平台10中的业务11是指为完成某种功能而通过计算机程序进行的动作的集合。在一台设备上可以同时运行多个业务。由于业务平台10可能包括不止一台设备,因此,业务平台10中的业务11可能会包括不同设备上执行的不同业务。在业务的执行过程中,可能会需要定时提醒。例如,在游戏业务中,每一局的时间可以是固定的。可能需要统计每个玩家用户在固定的一局时间内的得分。这样,在游戏业务的一局开局时,设置定时器任务,并在定时器任务到期时及时进行定时器回调,从而该局结束,这一点是十分必要的。

进程(process)是业务平台中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。定时信息调度进程13是为了进行业务所需要的定时器任务的调度而设置的进程。定时器任务是指为了执行一次计时活动(例如,从游戏业务的一局开局时开始计时,计时结束后回调)而由业务平台完成的动作的总和,它往往体现为存储的数据结构。例如,定时器任务可能体现为一个定时器加上该任务的名称(或者再加上该任务的说明、注意事项等)。该定时器加上该任务的名称(或者再加上该任务的说明、注意事项等)被设置,并存储在某一存储位置。调度是指对定时器任务的各种处理(如将定时器任务设置在某一存储位置,监视定时器任务是否到期,到期后进行定时器回调)的总称。定时信息调度进程13可以与业务11位于同一台设备上,可以位于与业务11不同的设备上。

定时信息存储位置12是指定时器任务在业务平台内被存储的位置,该位置上可能存储定时器加上该任务的名称(或者再加上该任务的说明、注意事项等)。它可以位于与业务11、定时信息调度进程13相同的设备上,也可以位于与业务11、定时信息调度进程13都不同的设备上。

当业务11需要定时提醒时,可以下定时器任务到定时信息存储位置12。定时信息调度进程13会监视定时信息存储位置12中的定时器任务。当定时器任务到期时,向下该定时器任务的业务11进行定时器回调。定时器回调是指定时器任务到期后,向下该定时器任务的业务通知这一情况,以便下该定时器任务的业务采取相应处理。

图2a-c示出根据本公开3个不同示例实施方式的定时提醒方法的示意图。

在图2a中,定时信息调度进程13包括定时器任务落地处理进程131、定时器任务回调处理进程133。定时信息存储位置12包括外部存储器122。定时器任务落地处理进程131是指将定时器任务设置到外部存储器122从而不受业务平台的内存容量限制影响的计算机进程。定时器任务回调处理进程133是指当定时器任务到期时向需要计时的业务进行定时器回调的计算机进程。外部存储器122是指除计算机内存及cpu缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外部存储器有硬盘、软盘、光盘、u盘等。

在图2b中,定时信息调度进程13包括定时器任务落地处理进程131、定时器任务回调处理进程133。定时信息存储位置12包括外部存储器122和共享内存定时缓冲队列121。定时器任务落地处理进程131是指将定时器任务设置到外部存储器122从而不受业务平台的内存容量限制影响的计算机进程。定时器任务回调处理进程133是指当定时器任务到期时向需要计时的业务进行定时器回调的计算机进程。外部存储器122是指除计算机内存及cpu缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外部存储器有硬盘、软盘、光盘、u盘等。共享内存定时缓冲队列121是将定时器任务暂时存储在缓存中而形成的队列。

在图2c中,定时信息调度进程13包括定时器任务落地处理进程131、回调任务入队处理进程132、定时器任务回调处理进程133。定时信息存储位置12包括外部存储器122和共享内存定时缓冲队列121、共享内存回调缓冲队列123。定时器任务落地处理进程131是指将定时器任务设置到外部存储器122从而不受业务平台的内存容量限制影响的计算机进程。回调任务入队处理进程132是指将外部存储器122存储的定时器任务到期时,将其调回共享内存回调缓冲队列123的计算机进程。定时器任务回调处理进程133是指向需要计时的业务进行定时器回调的计算机进程。外部存储器122是指除计算机内存及cpu缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外部存储器有硬盘、软盘、光盘、u盘等。共享内存定时缓冲队列121是将定时器任务暂时存储在缓存中而形成的队列。共享内存回调缓冲队列123是指要将定时器任务进行回调前将其暂时放入缓存中而形成的队列。

下面会结合图2a-c的不同实施方式进行更具体的说明。

如图3所示,根据本公开一个实施例的一种定时提醒方法,包括:

步骤310、将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置;

步骤320、响应于监测到定时器任务到期,利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调,以进行定时提醒。

下面对这些步骤进行详细描述。

在步骤310中,将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置。

如上所述,定时器任务是指为了执行一次计时活动(例如,从游戏业务的一局开局时开始计时,计时结束后回调)而由业务平台完成的动作的总和,它往往体现为存储的数据结构。例如,定时器任务可能体现为一个定时器加上该任务的名称(或者再加上该任务的说明、注意事项等)。在这种情况下,设置定时器任务包括:设置定时器,并设置定时器任务的名称。

在一个实施例中,设置定时器包括:将预定的到期时间写入定时器。该实施例的优点是,节省了到期时间与设置该定时器的时间的差的计算负荷,提高了设置定时器的效率。在这种情况下,在判断定时器任务是否到期时,需要不断将定时器中写入的时间与当前时间比较。

在一个实施例中,设置定时器包括:将预定的到期时间与设置该定时器的时间的差写入定时器,该差随着时间而减小,直到减小到0,认为定时器任务到期。在一个具体例子中,该差减小的粒度为预定时长,例如1s。在粒度为1s的情况下,时间每过去1s,该差减小1,直到减小到0,则认为到期。该实施例的优点是可以从定时器直接读取距离到期所剩余的时间,减少了监视定时器任务是否到期的处理负荷。

当定时器任务到期时,需要向设置定时器任务的业务进行定时器回调。这种回调要采用定时任务回调处理进程133和业务11都能够理解的协议消息。本公开实施例中,将定时器回调时采用的协议信息与定时器任务对应设置。这样,无论采用何种协议,监测到定时器任务到期时,都可以通过查找设置的协议信息,按照该协议信息发回调消息到业务11。

在一个实施例中,协议信息规定定时任务回调处理进程133向业务11进行定时器回调所用的协议。在该实施例中,响应于监测到定时器任务到期,参考该协议信息,利用协议信息中规定的协议生成回调消息,并将回调消息发送给业务11。

在另一个实施例中,协议信息包括有定时任务回调处理进程133向业务11进行定时器回调所用的回调消息。这样,定时任务回调处理进程133可以不管采用何种协议,直接从协议信息中取出回调消息,发送到业务11进行定时器回调。该实施例的好处是,使协议对于定时任务回调处理进程133完全屏蔽,减小定时任务回调处理进程133的处理负荷。

在另一个实施例中,协议信息包括定时任务回调处理进程133向业务11进行定时器回调所用的协议标识,并将协议标识与协议的对应关系进行存储。例如,可以在外部存储器维护一个协议标识与协议的对应关系表。在监测到定时器任务到期时,从协议信息中获得协议标识,并查找所述对应关系表,从而得到协议。然后,利用得到的协议,生成回调消息,并将回调消息发送给业务11。该实施例的优点是,协议信息中只放置协议标识,减小了放置回调协议信息占用的存储空间。

业务路由信息是表明业务在业务平台10上的路由的信息,它是定时任务回调处理进程133在向业务11进行定时器回调时找到业务11的依据。如果找不到该业务11,则无法完成定时器回调。

在一个实施例中,业务路由信息包括业务11在业务平台10上的路由。定时任务回调处理进程133根据该路由,可以直接找到业务11。

在另一个实施例中,业务路由信息包括业务11在业务平台10上的路由标识。将路由标识和路由的对应关系进行存储。例如,可以在外部存储器维护一个路由标识与路由的对应关系表。在监测到定时器任务到期时,从业务路由信息中获得路由标识,并查找所述对应关系表,从而得到路由。然后,利用得到的路由,可以找到相应业务11,并将回调消息发送给业务11。该实施例的优点是,业务路由信息中只放置路由标识,减小了放置业务路由信息占用的存储空间。

在一个实施例中,可以将定时器任务、对应的定时器回调协议信息和业务路由信息设置在不同的存储位置,并将这些存储位置进行链接。当找到定时器任务时,可以根据这些链接,找到对应的定时器回调协议信息和业务路由信息。

在另一个实施例中,与定时器任务对应的定时器回调协议信息和业务路由信息可以存储在统一定时结构体中,所述统一定时结构体是定时器任务的一部分。统一定时结构体是定时器任务内部的一个数据结构,其包含有放置与定时器任务对应的定时器回调协议信息的字段、和放置与定时器任务对应的业务路由信息的字段。该同一定时结构体存在于定时器任务内部。如上所述,定时器任务可能体现为一个定时器加上该任务的名称等。在该实施例中,定时器任务可能不仅含有定时器、任务的名称,可能还包含与定时器任务对应的定时器回调协议信息和业务路由信息。在其它实施例中,该定时器任务还可以包含任务标识等。

将与定时器任务对应的定时器回调协议信息和业务路由信息存储在定时器任务内部的统一定时结构体中的一个好处是,不用查找链接,在定时器任务本身中能够容易地查找到与定时器任务对应的定时器回调协议信息和业务路由信息,便于定时器回调。

步骤320中,响应于监测到定时器任务到期,利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调,以进行定时提醒。

在上述通过将预定的到期时间写入定时器来设置定时器的实施例中,监测定时器任务到期包括:定期将定时器中的到期时间与当前时间进行比较,如果达到当前时间,则认为定时器任务到期。

在一个实施例中,定期将定时器中的到期时间与当前时间进行比较可以由定时器任务回调处理进程133(图2a-b)或回调任务入队处理进程132(图2c)执行。在另一个实施例中,定期将定时器中的到期时间与当前时间进行比较可以由定时器执行并上报定时器任务回调处理进程133或回调任务入队处理进程132。

在上述通过将预定的到期时间与设置该定时器的时间的差写入定时器的实施例中,由于该差随着时间而减小,监测定时器任务到期包括:如果定时器中该差为0,则认为定时器任务到期。该实施例相对于定期将定时器中的到期时间与当前时间进行比较的方案,减小了监测定时器任务到期的处理开销。

在一个实施例中,监视定时器中该差为0可以由定时器任务回调处理进程133(图2a-b)或回调任务入队处理进程132(图2c)执行。在另一个实施例中,监视定时器中该差为0可以由定时器执行并上报定时器任务回调处理进程133或回调任务入队处理进程132。

如上所述,按照与该定时器任务对应的业务路由信息,可以找到下该定时器任务的业务(即需要定时提醒的业务)。从与该定时器任务对应的定时器回调协议信息,可以获得定时器回调时向找到的业务发送的协议消息,从而将获得的协议消息发送给找到的业务,完成定时提醒。

在一个实施例中,步骤310包括:将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置在缓存中。但是,缓存的存储容量有限。当定时器任务很长时间才会到期时,如果缓存本着先进先出的原则,则在定时器任务本应到期的时间点上,定时器任务可能已从缓存移出。另外,如果大量业务共享该缓存的话,可能涉及大量业务产生的定时器任务在缓存中堆积,造成缓存容量不足。

为了解决以上问题,如图4所示,在一个实施例中,步骤310可以包括:步骤311、将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置到外部存储器。

这样做的好处是,由于外部存储器的容量较大,不容易产生由于存储容量不足导致较早存储的定时器任务移出的问题,也满足了大量业务产生的定时器任务占用大量存储空间的需求。

在一个实施例中,步骤311包括:将定时器任务、对应的定时器回调协议信息和业务路由信息,按照定时器任务的到期时间从先到后的顺序排布存储在外部存储器122中。按照定时器任务的到期时间从先到后的顺序排布的好处是,使得监测定时器任务到期更加容易。

在一个实施例中,步骤311包括:将定时器任务、对应的定时器回调协议信息和业务路由信息,存储到所述外部存储器的以定时器任务的到期时间为索引的文件中。在外部存储器中同一时间到期的定时器任务可能有多个。将多个同一时间到期的定时器任务存储在同一个文件中,并且用到期时间为索引,可以在该到期时间来到时,将该同一个文件中的所有定时器任务一并取出,进行定时回调,有利于提高协同处理效率。

如图2a所示,当业务需要定时提醒时,生成定时器任务,并相应地生成对应的定时器回调协议信息和业务路由信息。定时器任务落地处理进程131将生成的定时器任务、对应的定时器回调协议信息和业务路由信息相对应地存储在外部存储器122中。定时器任务回调处理进程133监测是否有外部存储器122存储的定时器任务到期。当有定时器任务到期时,定时器任务回调处理进程133利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调,以进行定时提醒。

在一个实施例中,如图5所示,在步骤311之前,所述方法还包括:

步骤301、将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置到共享内存定时缓冲队列;

步骤302、从所述共享内存定时缓冲队列,取出定时器任务、对应的定时器回调协议信息和业务路由信息;

步骤303、判断取出的定时器任务是否到期,其中,如果未到期,执行步骤311。

如图2b所示,在一个实施例中,在将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置到外部存储器122之前,在步骤301中,先将它们设置到共享内存定时缓冲队列121。这个缓冲队列位于内存中,容易受内存存储容量有限影响,且一旦内存断电,容易消失。但是,将它们先放置在内存中,可以实现定时器任务、对应的定时器回调协议信息和业务路由信息的快速设置。在外部存储器(例如硬盘)上设置它们的效率要低于将它们设置在内存中的效率。因此,先将它们设置在共享内存定时缓冲队列121中,然后利用后来的一段时间,将它们从共享内存定时缓冲队列121转移到外部存储器122中,可以即保证设置它们的时效性,又防止它们受限于内存的容量而丢失。

在步骤302中,定时器任务落地处理进程131从所述共享内存定时缓冲队列121,取出定时器任务、对应的定时器回调协议信息和业务路由信息。

在一个实施例中,定时器任务落地处理进程131可以定期(例如每间隔1秒)从所述共享内存定时缓冲队列121,取出定时器任务、对应的定时器回调协议信息和业务路由信息。

在另一个实施例中,定时器任务落地处理进程131可以响应于特定事件(例如,共享内存定时缓冲队列121中存储的定时器任务的数目超过预定阈值),从所述共享内存定时缓冲队列121,取出定时器任务、对应的定时器回调协议信息和业务路由信息。

在一个实施例中,共享内存定时缓冲队列121是按照先进先出的顺序排队的。最先进入共享内存定时缓冲队列121的定时器任务、对应的定时器回调协议信息和业务路由信息会排在队列的最前面。定时器任务落地处理进程131也会最先取出在队列最前面的定时器任务、对应的定时器回调协议信息和业务路由信息。

在另一个实施例中,共享内存定时缓冲队列121是按照定时器任务到期的先后顺序排队的。每进入到该队列一个定时器任务,共享内存定时缓冲队列121会比较该定时器任务的到期时间与队列中目前存在的定时器任务的到期时间,将它们重新排序。排序后位于队列最前面的定时器任务、对应的定时器回调协议信息和业务路由信息就是队列中到期时间最早的定时器任务、对应的定时器回调协议信息和业务路由信息。该实施例的好处在于,使得到期时间比较早的定时器任务能够得到及时处理而不会耽误。在先进先出的实施例中,有的时候,先进入队列的定时器任务到期时间靠后,而后进入队列的定时器任务到期时间靠前。当取出队列前面的到期时间靠后的定时器任务后,到期时间靠前的定时器任务已到期或过期。按照到期的先后顺序排队并取出,可以尽可能避免上述问题。

在另一个实施例中,共享内存定时缓冲队列121的排队可能是按照任意顺序进行的,但从共享内存定时缓冲队列121取出定时器任务、对应的定时器回调协议信息和业务路由信息是按照定时器任务的到期时间先后顺序进行的。即,定时器任务落地处理进程131每次取出定时器任务、对应的定时器回调协议信息和业务路由信息时,对共享内存定时缓冲队列121中的定时器任务的到期时间进行比较,取出到期时间最早的定时器任务、对应的定时器回调协议信息和业务路由信息。

在步骤303中,定时器任务落地处理进程131判断取出的定时器任务是否到期,其中,如果未到期,执行步骤311。

在一个实施例中,定时器任务落地处理进程131判断取出的定时器任务是否到期可以通过比较定时器任务的到期时间与当前时间进行。如果到期时间晚于当前时间,则认为未到期。如果到期时间等于或早于当前时间,则认为到期。

在该实施例中,仅对未到期的定时器任务、对应的定时器回调协议信息和业务路由信息进行存储到所述外部存储器的后续处理,避免对那些在还未放入外部存储器122就已经到期的定时器任务、对应的定时器回调协议信息和业务路由信息进行无用的处理,节省了处理开销。

另外,在一个实施例中,如图5所示,所述方法还包括:步骤304、如果到期,利用取出的定时器回调协议信息,按照取出的业务路由信息进行回调。

在一个实施例中,利用取出的定时器回调协议信息,按照取出的业务路由信息进行回调,包括:

按照取出的业务路由信息,查找提醒目标业务;

利用取出的定时器回调协议信息,产生提醒消息;

将提醒消息发送到所述提醒目标业务。

提醒目标业务是指作为定时提醒的目标的业务。一般来说,下该定时器任务的业务11就是需要被定时提醒的业务,但也不排除,在一些情况下,下该定时器任务的业务11不是给自己下定时器任务,而是给其它业务下定时器任务。这时,下定时器任务所针对的业务就是提醒目标业务。

由于取出的业务路由信息中包含了到目标业务的路由信息,因此,根据该路由信息,可以找到该提醒目标业务。

由于取出的定时器回调协议信息包含向目标业务进行业务回调需要采用的协议的信息,因此,可以根据该信息,获得向提醒目标业务发生的回调消息。

如图6所示,在一个实施例中,步骤320包括:

步骤3201、监测到定时器任务到期;

步骤3202、将到期的定时器任务从外部存储器取出,放入共享内存回调缓冲队列;

步骤3203、从共享内存回调缓冲队列取定时器任务,以利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调。

在一个实施例中,步骤3201可以由图2c的回调任务入队处理进程132执行。在另一个实施例中,步骤3201由外部存储器监控机制自动执行,并通知图2c的回调任务入队处理进程132。

在一个实施例中,在定时器任务、对应的定时器回调协议信息和业务路由信息按照定时器任务的到期时间从先到后的顺序排布存储在外部存储器122中的情况下,步骤3201可以通过定期将按照到期时间从先到后的顺序排布在最前面的到期时间与当前时间进行比较,如果等于或早于当前时间,则认为定时器任务到期。这种按照到期时间从先到后的顺序排布存储的方式有助于提高监测定时器任务到期的效率。

在一个实施例中,在将定时器任务、对应的定时器回调协议信息和业务路由信息,存储到所述外部存储器122的以定时器任务的到期时间为索引的文件中的情况下,步骤3201可以通过定期将索引的到期时间最早的到期时间与当前时间进行比较,如果等于或早于当前时间,则认为定时器任务到期。这种以到期时间为索引的文件的存储方式有助于提高监测定时器任务到期的效率。

在一个实施例中,如果外部存储器中定时器任务、对应的定时器回调协议信息和业务路由信息的排布不反映定时器任务的到期时间,监测定时器任务到期可以包括:

将外部存储器存储的定时器任务的到期时间进行比较,找到到期时间最早的定时器任务;

将找到的定时器任务的到期时间与当前时间进行比较,如果早于或等于当前时间,则认为任务到期。

在步骤3202中,如图2c所示,回调任务入队处理进程132将到期的定时器任务、对应的定时器回调协议信息和业务路由信息,从外部存储器122取出,放入共享内存回调缓冲队列123。

将到期的定时器任务、对应的定时器回调协议信息和业务路由信息,从外部存储器122取出后不是直接向需要进行定时器回调的业务进行定时器回调,而是先存储在共享内存回调缓冲队列123中的作用是,由于从缓存中调取定时器任务、对应的定时器回调协议信息和业务路由信息进行回调,处理起来比从外部存储器调取更加快捷和容易,因此,这样的处理兼顾了效率和避免受存储容量限制影响两方面。

在步骤3203中,从共享内存回调缓冲队列取定时器任务,以利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调。

在一个实施例中,步骤3203包括:

从共享内存回调缓冲队列123取定时器任务、对应的定时器回调协议信息和业务路由信息;

按照与该定时器任务对应的业务路由信息,查找提醒目标业务;

利用与该定时器任务对应的定时器回调协议信息,产生提醒消息;

将提醒消息发送到所述提醒目标业务。

在一个实施例中,从共享内存回调缓冲队列123取定时器任务、对应的定时器回调协议信息和业务路由信息按照先进先出的方式。

在另一个实施例中,从共享内存回调缓冲队列123取定时器任务、对应的定时器回调协议信息和业务路由信息包括:

找出共享内存回调缓冲队列123中到期时间最早的定时器任务;

将到期时间最早的定时器任务、对应的定时器回调协议信息和业务路由信息取出。

按照到期时间的早晚来取定时器任务、对应的定时器回调协议信息和业务路由信息,可以保证到期时间最早的定时器任务能得到优先的处理,有助于提高定时器回调的效率。

在业务路由信息包括提醒目标业务在业务平台10上的路由的信息的情况下,定时器任务回调处理进程133可以根据该路由,找到提醒目标业务。

在业务路由信息包括提醒目标业务11在业务平台10上的路由标识的情况下,定时器任务回调处理进程133从业务路由信息中获得路由标识,并查找预存的路由标识和路由的对应关系表,从而得到提醒目标业务的路由。然后,利用得到的路由,可以找到提醒目标业务11。

在协议信息包括定时任务回调处理进程133向提醒目标业务11进行定时器回调所用的协议的情况下,定时器任务回调处理进程133从协议信息中获得协议,利用该协议生成回调消息,并将回调消息发送给提醒目标业务11。

在协议信息包括有定时任务回调处理进程133向业务11进行定时器回调所用的协议消息的情况下,定时器任务回调处理进程133可以直接将该协议消息取出,发送给提醒目标业务11,而不用管该消息采用的具体协议。

在协议信息包括定时任务回调处理进程133向业务11进行定时器回调所用的协议标识的情况下,定时器任务回调处理进程133可以从协议信息中获得协议标识,参照预存的协议标识与协议的对应关系表,得到协议,利用得到的协议,生成回调消息,并将回调消息发送给提醒目标业务11。

图9示出根据本公开一示例实施方式的定时提醒装置应用在规定游戏时间的游戏应用场景的示意图。在该场景中,多个玩家在各自的玩家设备910中玩游戏。游戏服务器920负载对各玩家设备游戏行程进行统一调配,并负责游戏的相关辅助支撑,如本公开实施例涉及的定时提醒。在游戏的每局开局时,通常要开始计时,并在规定的时间过去后,认为一局结束,从而统计玩家在一局中的得分。因此,各玩家设备910需要频繁应用定时提醒功能,甚至同一玩家设备910需要同时开启多个定时提醒。在如此多定时提醒的情况下,可以由游戏服务器920统一进行各玩家设备910的定时提醒的管理。

下面是该应用场景下实现各玩家设备910定时提醒的流程:

(1)玩家设备910一局开局,开启开局业务11。

(2)开局业务11开启后,马上生成定时器任务,并根据回调时采用的协议生成对应的定时器回调协议,根据开局业务11的路由地址生成业务路由信息。

(3)开局业务11将生成的定时器任务、对应的定时器回调协议信息和业务路由信息下到玩家设备910内部的共享内存定时缓冲队列121。

(4)游戏服务器920中的定时器任务处理落地进程131监视对应的共享内存定时缓冲队列121,定期从共享内存定时缓冲队列121取出定时器任务、对应的定时器回调协议信息和业务路由信息。

(5)定时器任务处理落地进程131判断取出的定时器任务是否到期。

(6)如果取出的定时器任务到期,则定时器任务处理落地进程131利用取出的定时器回调协议信息,按照取出的业务路由信息向开局业务11进行回调。

(7)如果取出的定时器任务未到期,则定时器任务处理落地进程131将取出的时器任务、对应的定时器回调协议信息和业务路由信息存储到外部存储器122。

(8)回调任务入队处理进程132检测到外部存储器122中的定时器任务到期。

(9)回调任务入队处理进程132将到期的定时器任务、对应的定时器回调协议信息和业务路由信息,从外部存储器122取出,放入共享内存回调缓冲队列123。

(10)定时任务回调处理进程133从共享内存回调缓冲队列123取定时器任务,以利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息向相应开局业务11进行定时器回调。

(11)玩家设备910中的开局业务11结束这一局,开始这一局中的用户得分统计。

如图9所示,根据本公开的一个实施例,提供了一种定时提醒装置,包括:

第一设置单元710,用于将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置;

定时器回调单元720,用于响应于监测到定时器任务到期,利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调,以进行定时提醒。

在一个实施例中,第一设置单元710进一步用于:

将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置到外部存储器。

在一个实施例中,所述装置还包括:

第二设置单元701,用于将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置到共享内存定时缓冲队列;

第一取出单元702,用于从所述共享内存定时缓冲队列,取出定时器任务、对应的定时器回调协议信息和业务路由信息;

判断单元703,用于判断取出的定时器任务是否到期,其中,如果未到期,第一设置单元710才将取出的时器任务、对应的定时器回调协议信息和业务路由信息存储到所述外部存储器。

在一个实施例中,所述从所述共享内存定时缓冲队列,取出定时器任务、对应的定时器回调协议信息和业务路由信息是按照定时器任务到期的先后顺序进行的。

在一个实施例中,所述装置还包括:

早到期回调单元(未示),用于在判断取出的定时器任务是否到期之后,如果到期,利用取出的定时器回调协议信息,按照取出的业务路由信息进行回调。

在一个实施例中,所述将定时器任务、对应的定时器回调协议信息和业务路由信息相对应地设置到外部存储器,包括:

将定时器任务、对应的定时器回调协议信息和业务路由信息,存储到所述外部存储器的以定时器任务的到期时间为索引的文件中。

在一个实施例中,定时器回调单元720进一步用于:

监测到定时器任务到期;

将到期的定时器任务、对应的定时器回调协议信息和业务路由信息,从外部存储器取出,放入共享内存回调缓冲队列;

从共享内存回调缓冲队列取定时器任务,以利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调。

在一个实施例中,从所述共享内存回调缓冲队列取定时器任务,以利用与该定时器任务对应的定时器回调协议信息,按照与该定时器任务对应的业务路由信息进行定时器回调,包括:

从共享内存回调缓冲队列取定时器任务、对应的定时器回调协议信息和业务路由信息;

按照与该定时器任务对应的业务路由信息,查找提醒目标业务;

利用与该定时器任务对应的定时器回调协议信息,产生提醒消息;

将提醒消息发送到所述提醒目标业务。

在一个实施例中,与定时器任务对应的定时器回调协议信息和业务路由信息存储在统一定时结构体中,所述统一定时结构体是定时器任务的一部分。

下面参照图10来描述根据本公开的实施方式的定时提醒装置9。图10显示的定时提醒装置仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图10所示,定时提醒装置以通用计算设备的形式表现。定时提醒装置的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。

所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图3中所示的各个步骤。

存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。

存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

定时提醒装置也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该定时提醒装置交互的设备通信,和/或与使得该定时提醒装置能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,定时提醒装置还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与定时提醒装置的其它模块通信。应当明白,尽管图中未示出,可以定时提醒装置可以使用其它硬件和/或软件模块实现,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

在本公开的示例性实施例中,还提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。

根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1