CN106557522B - 一种用于提供定时功能的方法与设备 - Google Patents
一种用于提供定时功能的方法与设备 Download PDFInfo
- Publication number
- CN106557522B CN106557522B CN201510639282.4A CN201510639282A CN106557522B CN 106557522 B CN106557522 B CN 106557522B CN 201510639282 A CN201510639282 A CN 201510639282A CN 106557522 B CN106557522 B CN 106557522B
- Authority
- CN
- China
- Prior art keywords
- timer
- cloud
- node
- request
- notification
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Abstract
本发明的目的是提供一种为处理和数据相分离的系统提供定时功能的技术。本发明新引入了云定时器,该云定时器至少包括一个第一节点和一个第二节点,第一节点用于接收来自一个处理的启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识;第二节点用于当所述定时器的所述过期期限到达时向所述通知者标识对应的网络实体发送定时器超时通知。和现有技术相比,本发明没有破坏Worker‑State模型的设计原则,且定时器的启动者可以指定定时器超时时的通知对象和定时器超时通知中携带的信息,弥补了现有技术中的缺陷。云定时器的设计采用了多节点的、冗余备份的原则,符合云计算环境的基本思想。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种提供定时功能的技术。
背景技术
在处理(processing)和数据(data)不相分离的传统应用中,计时器是一种本地资源。图1(a)示出了传统的应用模型的示意图。如图1(a)所示,在传统应用中,计时器和服务逻辑、状态信息一起嵌入到每个应用实例中。传统应用的弹性(elasticity)比较差,即很难改变应用的大小、位置等。而在云计算环境中,弹性是云应用必须具有的特性,没有弹性,应用将无法享受到云计算环境的各种优势。
目前,有一种方案可以提高传统应用的弹性,即将传统的应用模型演进为Worker-State(工人-状态)模型。图1(b)示出了Worker-State模型的示意图。可以看到,在Worker-State模型中,处理和数据是分离的。传统应用中的状态信息(state information)存储在具有弹性、可支持大数据的云数据库(cloud database)中,这里所说的状态信息不仅仅是狭义的和状态相关的信息,而是指广义上的所有的用户数据。而传统应用中的服务逻辑由worker(工人)来实现,所有的服务逻辑都被放在处理池(worker pool)中。这里所说的worker实际上就是处理。那么,传统应用中的计时器在这种Worker-State模型中应该怎么实现呢?
现有技术中主要有两种在Worker-State模型中实现计时器的方案:
第一种:在云数据库中实现
当某一处理向云数据库中插入数据时,会对该数据设置一个到期间隔。当所述间隔到达时,该数据将会被自动删除。实现这种方案的云数据库又可分为两类:
第一类:不向所述处理发送数据删除的通知消息
当上述数据被删除时,云数据库不会向所述处理发送通知消息。Cassandra云数据库采用的就是这种方式。
第二类:向所述处理发送数据删除的通知消息
所述处理可以订阅数据删除事件,当该数据被删除时,云数据库会向所述处理发送通知消息。Redis云数据库采用的就是这种方式。
这两类在云数据库中实现定时器的方法均存在不足。在Worker-State模型中,常常会存在这样的情形:处理需要得到定时器超时的通知,比如,在IMS系统中的S-CSCF(Serving-Call Session Control Function,服务呼叫会话控制功能)就需要得到UE注册超时的通知。很显然,第一类云数据库不能满足这样的需求。第二类云数据库虽然可以向处理发送数据删除的通知消息,但是,所述通知消息只是用于告知处理该数据已被删除,并没有关于所述数据的任何信息,这样会导致没有完整的数据用来向S-CSCF通知UE的注册超时。而且,该通知消息只能发送给当初订阅该通知消息的处理,而在Worker-State模型,常常会出现当定时器超时时,当初订阅该通知消息的处理已经不存在了,导致该通知消息无法成功发送。
第二种:由处理辅助实现
在这种方案中,定时器由处理来启动,并且在云数据库中保存定时器和处理的对应关系。
当处理发生迁移(relocate)时,定时器也可能随之发生迁移,比如某一会话(session)S1的处理X处理完请求消息Req1后就被删除了,当该会话S1产生请求消息Req2时,处理Y会处理该请求消息2。但是由处理X启动的定时器TimerX还没有超时,处理Y通过查询云数据库获知处理X启动的定时器为TimerX,处理Y会重新启动该定时器TimerX并更新云数据库:更新处理X和定时器TimerX的对应关系为处理Y和定时器TimerX的对应关系。上述这种情况称为定时器的迁移。
这种方案也存在以下不足:
1)在处理侧保留定时器违背了Worker-State模型中处理是无状态的设计原则,而且有些情况下,当处理完成了工作也不能完全释放资源因为由它启动的定时器还在运转,这无疑会造成资源浪费。
2)由于在云数据库中需要保存和更新定时器和处理的对应关系,增加了系统的复杂性。
3)由于存在定时器的迁移,定时器的准确性会降低。
由此可见,现有技术中并没有一种技术方案能很好地解决Worker-State模型中的定时器问题。
发明内容
本发明的目的是提供一种为处理和数据相分离的系统提供定时功能的的方法与设备。
根据本发明的第一个方面,提供了一种在云定时器中为处理和数据相分离的系统提供定时功能的方法,所述系统包括一个处理池、一个云数据库和所述云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该方法包括以下步骤:A.所述云定时器接收来自一个处理的启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识;B.所述云定时器向所述处理发送启动定时器成功的确认消息;C.当所述定时器的所述过期期限到达时,所述云定时器向所述通知者标识对应的网络实体发送定时器超时通知。
优选地,所述启动定时器请求还包含了与所述定时器相关的信息,所述定时器超时通知还包含了所述与所述定时器相关的信息。
优选地,所述通知者标识包括至少一个网络实体的标识,每个网络实体对应不同的优先级,步骤C进一步包括:当所述云定时器向优先级高的网络实体发送所述定时器超时通知失败时,其再向优先级低的网络实体发送所述定时器超时通知。
优选地,所述通知者标识至少包含了所述处理的标识和所述处理所在的处理池的标识,所述处理的优先级高于所述处理池的优先级。
优选地,所述步骤A进一步包括:所述云定时器中的第一节点接收来自所述处理的启动定时器请求;在步骤A和步骤B之间还包括步骤:所述第一节点根据预设的算法和预设的冗余数N(N>1),确定所述云定时器中的启动所述定时器的N个节点;所述第一节点向所述N个节点发送启动定时器请求用于指示所述N个节点启动所述定时器;所述步骤B进一步包括:所述第一节点向所述处理发送启动定时器成功的确认消息;所述步骤C进一步包括:当所述N个节点中的第二节点的所述定时器的所述过期期限到达时,所述第二节点向其余N-1个节点发送取消定时器请求用于指示所述其余N-1个节点取消所述定时器;所述第二节点向所述通知者标识对应的网络实体发送所述定时器超时通知。
根据本发明的第二个方面,提供了一种在处理中为处理和数据相分离的系统辅助提供定时功能的方法,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该方法包括以下步骤:所述处理向所述云定时器发送启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识;响应于来自所述云定时器的启动定时器成功的确认消息,向所述云数据库发送添加数据请求,其中包含了要添加的数据的信息。
根据本发明的第三个方面,提供了一种在处理中为处理和数据相分离的系统辅助提供定时功能的方法,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该方法包括以下步骤:所述处理接收来自所述云定时器的定时器超时通知,其中包含了与所述定时器相关的信息;根据所述与所述定时器相关的信息,所述处理向所述云数据库发送数据操作请求。
根据本发明的第四个方面,提供了一种为处理和数据相分离的系统提供定时功能的云定时器,所述系统包括一个处理池、一个云数据库和所述云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,其中,该云定时器至少包括一个第一节点和一个第二节点,所述第一节点用于接收来自一个处理的启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识;并且所述第一节点用于向所述处理发送启动定时器成功的确认消息;所述第二节点用于当所述定时器的所述过期期限到达时向所述通知者标识对应的网络实体发送定时器超时通知。
优选地,所述启动定时器请求还包含了与所述定时器相关的信息,所述定时器超时通知还包含了所述与所述定时器相关的信息。
优选地,所述通知者标识包括至少一个网络实体的标识,每个网络实体对应不同的优先级,当所述第二节点向优先级高的网络实体发送所述定时器超时通知失败时,其再向优先级低的网络实体发送所述定时器超时通知。
优选地,所述通知者标识至少包含了所述处理的标识和所述处理所在的处理池的标识,所述处理的优先级高于所述处理池的优先级。
优选地,所述第一节点还用于:根据预设的算法和预设的冗余数N(N>1),确定所述云定时器中的启动所述定时器的N个节点;
向所述N个节点发送启动定时器请求用于指示所述N个节点启动所述定时器;所述第二节点为所述N个节点中的一个节点,其还用于:当所述第二节点的所述定时器的所述过期期限到达时,向其余N-1个节点发送取消定时器请求用于指示所述其余N-1个节点取消所述定时器。
根据本发明的第五个方面,提供了一种在处理中为处理和数据相分离的系统辅助提供定时功能的装置,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该装置包括:第一发送装置,用于所述处理向所述云定时器发送启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识;第二发送装置,用于响应于来自所述云定时器的启动定时器成功的确认消息,向所述云数据库发送添加数据请求,其中包含了要添加的数据的信息。
根据本发明的第六个方面,提供了一种在处理中为处理和数据相分离的系统辅助提供定时功能的装置,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该装置包括:接收装置,用于接收来自所述云定时器的定时器超时通知,其中包含了与所述定时器相关的信息;第三发送装置,用于根据所述与所述定时器相关的信息,向所述云数据库发送数据操作请求。
本发明在处理和数据相分离的系统中新引入了云定时器从而实现定时功能,和现有技术相比,其具有以下优势:1)没有破坏Worker-State模型的设计原则,在处理侧不需要保存数据和定时器,使得处理可以更加专注于逻辑的处理,而无需额外增加关于定时器的辅助处理,而且在数据侧也没有增加复杂性。2)定时器的启动者可以指定定时器超时时的通知对象,实现起来非常灵活,而且也避免了定时器超时通知发送失败的情况,从而避免潜在的系统漏洞。3)定时器的启动者可以指定定时器超时通知中携带的信息,方便相关网元的后续处理。4)云定时器的设计采用了多节点的、冗余备份的原则,符合云计算环境的设计思想。5)对比由处理辅助实现的定时器,避免了定时器的迁移,从而提高了其精度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1(a)示出了传统的应用模型的示意图;
图1(b)示出了Worker-State模型的示意图。
图2示出根据本发明一个实施例的应用场景图;
图3示出根据本发明一个实施例的为处理和数据相分离的系统提供定时功能的过程示意图;
图4示出根据本发明一个实施例的在处理X中用于辅助提供定时功能的装置示意图;
图5示出根据本发明一个实施例的在处理Y中用于辅助提供定时功能的装置示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图2示出根据本发明一个实施例的应用场景图。该实施例示出了一个云计算环境中处理和数据相分离的系统。该系统包括一个处理池201、一个云定时器202和一个云数据库203。处理池201由至少一个处理组成,如图所示包含了处理1、处理2、…和处理P。所述云定时器由至少一个节点组成。
其中,云定时器202为本发明新引入的网络实体,通常,其是一个逻辑功能体,由多个节点构成的,这些节点是分布式的,而且这些节点具备的能力是相同的,即可以实现的功能是相同的。在云计算环境中,这些节点可以是虚拟机(Virtual Machine,VM)。出于可靠性的考虑,同一个定时器可以同时在多个节点启动,从而避免了单点故障。云定时器202是基于No-SQL数据库(即云数据库)设计的,所以云定时器202里的节点个数是可以动态调整的。
云定时器202是独立于处理池201和云数据库203的单独的实体。但是,由于其在设计上和云数据库类似,在实际操作中其也可以嵌入到云数据库203中。
图3示出根据本发明一个实施例的为处理和数据相分离的系统提供定时功能的过程示意图。
在该实施例中,会话S1在其存续期间有多个事物(Transaction),其中事务T1对应请求1,事务Tn对应请求n。处理X用来处理请求1,处理Y用来处理请求n。处理X和处理Y均在处理池201中。
云定时器202中包含了节点N1、节点N2、节点N3、节点N4和节点N5。这5个节点具备的能力是相同的。
该过程始于步骤S301。
在步骤S301中,处理X向云定时器202发送启动定时器请求,其中包含了一个定时器的标识Timer1、该定时器对应的过期期限和通知者标识。
这里所说的通知者指的是定时器Timer1超时时云定时器202应该通知的对象。可以看出,和现有技术不同的是,处理X在启动定时器时可以指定该定时器超时时应该通知的对象,这个对象即可以是处理X,也可以是其它实体。这样,定时器Timer1超时时云定时器202应该通知的对象可能不是最初启动该定时器Timer1的实体,实现起来非常灵活。
在另一个实施例中,所述通知者标识包括至少一个网络实体的标识,每个网络实体对应不同的优先级。这样,当定时器Timer1超时时,云定时器202如果向优先级高的网络实体发送定时器超时通知失败时,其再向优先级低的网络实体发送定时器超时通知,从而降低了失败率。
在又一个实施例中,所述通知者标识至少包括了处理X的标识和处理X所在处理池201的标识,且处理X的优先级高于处理池201的优先级。这样,当定时器Timer1超时时,处理X已经不存在了,导致云定时器202向处理X发送定时器超时通知失败,云定时器202会再向处理池201发送定时器超时通知。
在再一个实施例中,云定时器202中的节点N1接收到上述启动定时器请求。然后,节点N1根据预先设置的算法和预先设置的冗余数N(N>1),确定启动该定时器Timer1的N个节点。
这里所述的算法可以是一致性Hash算法等。这里所述的冗余数N指的是在云定时器202中预设的同时启动一个定时器的数量。同时在多个节点上启动同一个定时器主要是为了避免单点故障,这在云计算环境中也是常用的方法。
在该实施例中,云定时器202中预设的算法为Hash算法,预设的冗余数N为3。节点N1根据Hash算法和冗余数3确定启动该定时器Timer1的3个节点为节点N2、节点N3和节点N4。
然后,在步骤S302中,节点N1分别向确定的这N个节点(即节点N2、节点N3和节点N4)发送启动定时器请求,用于指示节点N2、节点N3和节点N4启动定时器Timer1。节点N2、节点N3和节点N4收到该启动定时器请求后会分别启动该定时器Timer1。也就是说,节点N2、节点N3和节点N4会同时运行该定时器Timer1。
这N个节点均知晓同时运行该定时器Timer1的其余N-1个节点。
然后,在步骤S303中,云定时器202向处理X发送启动定时器成功的确认消息,具体的,云定时器202中的节点N1向处理X发送所述启动定时器成功的确认消息。
处理X在收到定时器成功启动的确认后,在步骤S304中,处理X向云数据库203发送添加数据请求,其中包含了处理X要添加到云数据库203的数据的信息。
过了一段时间后,定时器Timer1的上述过期期限到达。虽然节点N2、节点N3和节点N4是同时在运行该定时器Timer1,但由于接收到消息的时刻有先后,或者网络延时或者处理速度等原因,导致在这3个节点上运行的同一定时器Timer1总是会不完全同步,总有一个节点的定时器Timer1最先超时。
在步骤S305中,在这N个节点中定时器Timer1最先超时的节点N4向其余N-1个节点发送取消定时器请求,用于指示其余N-1个节点取消其上运行的定时器Timer1。如图所示,节点N4会向节点N2和节点N3发送取消定时器请求,节点N2和节点N3在收到上述消息后会取消其上运行的定时器Timer1。
然后,在步骤S306中,云定时器202向上述通知者标识对应的网络实体发送定时器超时通知。具体的,云定时器202中的节点N4向上述通知者标识对应的网络实体发送所述定时器超时通知。
在该实施例中,上述通知者标识包括了处理X的标识和处理X所在处理池201的标识,且处理X的优先级高于处理池201的优先级。而此时,处理X由于已经完成任务已被删除了,节点N4向处理X发送上述定时器超时通知失败,因此,节点N4会再向处理池201发送上述定时器超时通知。处理池201收到该通知后,会将该通知发给处理Y,该通知中包含了一个定时器标识即定时器Timer1的标识。
在又一个实施例中,在步骤S301中的启动定时器请求进一步还包括了与该定时器Timer1相关的信息。这些相关的信息可以是:通知对象地址、和该定时器Timer1对应的数据的关键字、定时器Timer1超时时被通知对象要执行的函数等。相应地,在步骤S306中的定时器超时通知还包含了上述与该定时器Timer1相关的信息。这样,定时器的启动者可以决定定时器超时时需要带回的信息。
处理Y在收到上述定时器超时通知后,得知定时器Timer1超时。
然后,在步骤S307中,处理Y会向云数据库203发送数据操作请求。根据定时器超时通知中包含的上述与该定时器Timer1相关的信息(比如和该定时器Timer1对应的数据的关键字)处理Y可以确定与定时器Timer1相关的数据,该请求用于对与定时器Timer1相关的数据进行操作,这些数据可以是步骤S304中处理X添加到云数据库203中的数据,这些操作包括但不限于检索、删除等。
有些情况下,比如请求1为SIP终端注册发起的Register消息,当处理Y收到定时器Timer1超时的通知时,其会通知终端,即请求n为Notify消息,然后,处理Y会直接删除处理X添加到云数据库203中的数据,
而有些情况下,比如请求1为SIP终端建立会话发起的Invite消息,当处理Y收到定时器Timer1超时的通知时,处理Y会检索处理X添加到云数据库203中的数据,然后,检测该会话是否还有效,即请求n为Update消息,处理Y向终端发送Update消息对该会话做心跳检测。
需要指出的是,虽然上述的实施例中节点N1、节点N2、节点N3、节点N4和节点N5完成的功能有所不同,但是每一个节点都具备相同的能力,这样可以大大避免单点故障的发生。对于同一个节点,在不同的事务处理中其实际完成的功能可能有所不同。
图4示出根据本发明一个实施例的在处理X中用于辅助提供定时功能的装置示意图。该装置400包括:第一发送装置401和第二发送装置402。
下面结合图2和图3详细描述该装置400的工作工程。
首先,第一发送装置401向云定时器202发送启动定时器请求,其中包含了一个定时器的标识Timer1、该定时器对应的过期期限和通知者标识。
这里所说的通知者指的是定时器Timer1超时时云定时器202应该通知的对象。可以看出,和现有技术不同的是,处理X在启动定时器时可以指定该定时器超时时应该通知的对象,这个对象即可以是处理X,也可以是其它实体。这样,定时器Timer1超时时云定时器202应该通知的对象可能不是最初启动该定时器Timer1的实体,实现起来非常灵活。
在另一个实施例中,所述通知者标识包括至少一个网络实体的标识,每个网络实体对应不同的优先级。这样,当定时器Timer1超时时,云定时器202如果向优先级高的网络实体发送定时器超时通知失败时,其再向优先级低的网络实体发送定时器超时通知,从而降低了失败率。
在又一个实施例中,所述通知者标识至少包括了处理X的标识和处理X所在处理池201的标识,且处理X的优先级高于处理池201的优先级。这样,当定时器Timer1超时时,处理X已经不存在了,导致云定时器202向处理X发送定时器超时通知失败,云定时器202会再向处理池201发送定时器超时通知。
然后,第二发送装置402响应于来自云定时器202的启动定时器成功的确认消息,向云数据库203发送添加数据请求,其中包含了处理X要添加到云数据库203的数据的信息。
图5示出根据本发明一个实施例的在处理Y中用于辅助提供定时功能的装置示意图。该装置500包括:接收装置501和第三发送装置502。
下面结合图2和图3详细描述该装置500的工作工程。
首先,接收装置501收到来自云定时器202的定时器超时通知,其中包含了一个定时器标识即定时器Timer1的标识和与该定时器Timer1相关的信息。这些相关的信息可以是:通知对象地址、和该定时器Timer1对应的数据的关键字、定时器Timer1超时时被通知对象要执行的函数等。
处理Y在收到上述定时器超时通知后,得知定时器Timer1超时。
然后,第三发送装置502会向云数据库203发送数据操作请求。根据定时器超时通知中包含的上述与该定时器Timer1相关的信息(比如和该定时器Timer1对应的数据的关键字)处理Y可以确定与定时器Timer1相关的数据,该请求用于对与定时器Timer1相关的数据进行操作,这些数据可以是处理X添加到云数据库203中的数据,这些操作包括但不限于检索、删除等。
有些情况下,比如请求1为SIP终端注册发起的Register消息,当处理Y收到定时器Timer1超时的通知时,其会通知终端,即请求n为Notify消息,然后,处理Y会直接删除处理X添加到云数据库203中的数据,
而有些情况下,比如请求1为SIP终端建立会话发起的Invite消息,当处理Y收到定时器Timer1超时的通知时,处理Y会检索处理X添加到云数据库203中的数据,然后,检测该会话是否还有效,即请求n为Update消息,处理Y向终端发送Update消息对该会话做心跳检测。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (14)
1.一种在云定时器中为处理和数据相分离的系统提供定时功能的方法,所述系统包括一个处理池、一个云数据库和所述云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该方法包括以下步骤:
A.所述云定时器接收来自一个处理的启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识;
B.所述云定时器向所述处理发送启动定时器成功的确认消息;
C.当所述定时器的所述过期期限到达时,所述云定时器向所述通知者标识对应的至少一个对象发送定时器超时通知,
其中所述通知者标识包括所述至少一个对象的标识,所述至少一个对象中的每个对象对应于不同的优先级,并且其中当所述云定时器向优先级高的对象发送所述定时器超时通知失败时,其再向优先级低的对象发送所述定时器超时通知。
2.根据权利要求1所述的方法,其中,所述启动定时器请求还包含了与所述定时器相关的信息,所述定时器超时通知还包含了所述与所述定时器相关的信息。
3.根据权利要求1所述的方法,其中,所述至少一个对象包括至少一个网络实体。
4.根据权利要求3所述的方法,其中,所述至少一个对象包括所述处理和所述处理所在的处理池,其中所述处理的优先级高于所述处理池的优先级。
5.根据权利要求1或2或3或4所述的方法,其中,所述步骤A进一步包括:所述云定时器中的第一节点接收来自所述处理的启动定时器请求;
在步骤A和步骤B之间还包括步骤:
所述第一节点根据预设的算法和预设的冗余数N,其中N>1,确定所述云定时器中的启动所述定时器的N个节点;
所述第一节点向所述N个节点发送启动定时器请求用于指示所述N个节点启动所述定时器;
所述步骤B进一步包括:所述第一节点向所述处理发送启动定时器成功的确认消息;
所述步骤C进一步包括:
当所述N个节点中的第二节点的所述定时器的所述过期期限到达时,所述第二节点向其余N-1个节点发送取消定时器请求用于指示所述其余N-1个节点取消所述定时器;
所述第二节点向所述通知者标识对应的网络实体发送所述定时器超时通知。
6.一种在处理中为处理和数据相分离的系统辅助提供定时功能的方法,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该方法包括以下步骤:
所述处理向所述云定时器发送启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识,
其中所述通知者标识包括当所述云定时器超时时所述云定时器应该向其发送定时器超时通知的至少一个对象的标识,所述至少一个对象中的每个对象对应于不同的优先级,并且其中当所述云定时器向优先级高的对象发送所述定时器超时通知失败时,其再向优先级低的对象发送所述定时器超时通知;
响应于来自所述云定时器的启动定时器成功的确认消息,向所述云数据库发送添加数据请求,其中包含了要添加的数据的信息。
7.一种在处理中为处理和数据相分离的系统辅助提供定时功能的方法,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该方法包括以下步骤:
所述处理接收来自所述云定时器的定时器超时通知,其中包含了与所述定时器相关的信息,
其中当所述云定时器超时时所述云定时器向包括所述处理的至少一个对象发送所述定时器超时通知,所述至少一个对象中的每个对象对应于不同的优先级,并且其中当所述云定时器向优先级高的对象发送所述定时器超时通知失败时,其再向优先级低的对象发送所述定时器超时通知;
根据所述与所述定时器相关的信息,所述处理向所述云数据库发送数据操作请求。
8.一种为处理和数据相分离的系统提供定时功能的云定时器,所述系统包括一个处理池、一个云数据库和所述云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,其中,该云定时器至少包括一个第一节点和一个第二节点,
所述第一节点用于接收来自一个处理的启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识;
并且所述第一节点用于向所述处理发送启动定时器成功的确认消息;
所述第二节点用于当所述定时器的所述过期期限到达时向所述通知者标识对应的至少一个对象发送定时器超时通知,
其中所述通知者标识包括所述至少一个对象的标识,所述至少一个对象中的每个对象对应于不同的优先级,当所述第二节点向优先级高的对象发送所述定时器超时通知失败时,其再向优先级低的对象发送所述定时器超时通知。
9.根据权利要求8所述的云定时器,其中,所述启动定时器请求还包含了与所述定时器相关的信息,所述定时器超时通知还包含了所述与所述定时器相关的信息。
10.根据权利要求8所述的云定时器,其中,所述至少一个对象包括至少一个网络实体。
11.根据权利要求8所述的云定时器,其中,所述至少一个对象包括所述处理和所述处理所在的处理池,其中所述处理的优先级高于所述处理池的优先级。
12.根据权利要求8或9或10或11所述的云定时器,其中,
所述第一节点还用于:
根据预设的算法和预设的冗余数N,其中N>1,确定所述云定时器中的启动所述定时器的N个节点;
向所述N个节点发送启动定时器请求用于指示所述N个节点启动所述定时器;
所述第二节点为所述N个节点中的一个节点,其还用于:
当所述第二节点的所述定时器的所述过期期限到达时,向其余N-1个节点发送取消定时器请求用于指示所述其余N-1个节点取消所述定时器。
13.一种在处理中为处理和数据相分离的系统辅助提供定时功能的装置,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该装置包括:
第一发送装置,用于所述处理向所述云定时器发送启动定时器请求,其中包含了一个定时器的标识、过期期限和通知者标识,
其中所述通知者标识包括当所述云定时器超时时所述云定时器应该向其发送定时器超时通知的至少一个对象的标识,所述至少一个对象中的每个对象对应于不同的优先级,并且其中当所述云定时器向优先级高的对象发送所述定时器超时通知失败时,其再向优先级低的对象发送所述定时器超时通知;
第二发送装置,用于响应于来自所述云定时器的启动定时器成功的确认消息,向所述云数据库发送添加数据请求,其中包含了要添加的数据的信息。
14.一种在处理中为处理和数据相分离的系统辅助提供定时功能的装置,所述系统包括一个处理池、一个云数据库和一个云定时器,所述处理池由至少一个处理组成,所述云定时器由至少一个节点组成,该装置包括:
接收装置,用于接收来自所述云定时器的定时器超时通知,其中包含了与所述定时器相关的信息,
其中当所述云定时器超时时所述云定时器向包括所述处理的至少一个对象发送所述定时器超时通知,所述至少一个对象中的每个对象对应于不同的优先级,并且其中当所述云定时器向优先级高的对象发送所述定时器超时通知失败时,其再向优先级低的对象发送所述定时器超时通知;
第三发送装置,用于根据所述与所述定时器相关的信息,向所述云数据库发送数据操作请求。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510639282.4A CN106557522B (zh) | 2015-09-30 | 2015-09-30 | 一种用于提供定时功能的方法与设备 |
PCT/IB2016/001536 WO2017055927A1 (en) | 2015-09-30 | 2016-09-28 | Methods and apparatuses for providing timing functionality |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510639282.4A CN106557522B (zh) | 2015-09-30 | 2015-09-30 | 一种用于提供定时功能的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106557522A CN106557522A (zh) | 2017-04-05 |
CN106557522B true CN106557522B (zh) | 2020-06-12 |
Family
ID=57233779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510639282.4A Expired - Fee Related CN106557522B (zh) | 2015-09-30 | 2015-09-30 | 一种用于提供定时功能的方法与设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106557522B (zh) |
WO (1) | WO2017055927A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107730126B (zh) * | 2017-10-23 | 2021-06-01 | 浪潮通用软件有限公司 | 一种实现定时的方法及装置 |
CN110351223B (zh) * | 2018-04-02 | 2021-09-17 | 腾讯科技(深圳)有限公司 | 定时提醒方法、装置和计算机程序介质 |
CN111510469B (zh) * | 2019-01-31 | 2023-04-25 | 上海哔哩哔哩科技有限公司 | 一种消息处理方法和装置 |
CN114647696A (zh) * | 2020-12-17 | 2022-06-21 | 中兴通讯股份有限公司 | 一种定时器系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014142358A1 (en) * | 2013-03-15 | 2014-09-18 | Ricoh Company, Limited | Distribution control system, distribution control method, and computer-readable storage medium |
CN104601533A (zh) * | 2013-10-31 | 2015-05-06 | 阿尔卡特朗讯 | 一种用于关闭Diameter连接的方法与设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012088652A1 (en) * | 2010-12-27 | 2012-07-05 | Microsoft Corporation | Power management via coordination and selective operation of timer-related tasks |
-
2015
- 2015-09-30 CN CN201510639282.4A patent/CN106557522B/zh not_active Expired - Fee Related
-
2016
- 2016-09-28 WO PCT/IB2016/001536 patent/WO2017055927A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014142358A1 (en) * | 2013-03-15 | 2014-09-18 | Ricoh Company, Limited | Distribution control system, distribution control method, and computer-readable storage medium |
CN104601533A (zh) * | 2013-10-31 | 2015-05-06 | 阿尔卡特朗讯 | 一种用于关闭Diameter连接的方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106557522A (zh) | 2017-04-05 |
WO2017055927A1 (en) | 2017-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10255343B2 (en) | Initialization protocol for a peer-to-peer replication environment | |
CN106557522B (zh) | 一种用于提供定时功能的方法与设备 | |
US9569517B1 (en) | Fault tolerant distributed key-value storage | |
EP2665228B1 (en) | Method for adjusting resources dynamically and scheduling device | |
CN111314479B (zh) | 一种数据处理方法和设备 | |
US9614646B2 (en) | Method and system for robust message retransmission | |
CN109565448B (zh) | 用于解决链路故障的方法、介质、计算单元和系统 | |
JP2017528809A5 (zh) | ||
CN110636128A (zh) | 一种数据同步方法、系统、电子设备及存储介质 | |
CN111078422B (zh) | 消息处理方法、消息处理装置、可读存储介质、电子设备 | |
WO2017133531A1 (zh) | 异步服务处理方法及服务器 | |
CN102929698A (zh) | 一种任务判重方法及系统 | |
CN106331081B (zh) | 一种信息同步方法及装置 | |
CN107517110A (zh) | 一种分布式系统中单板配置自恢复方法及装置 | |
CN109361542A (zh) | 客户端的故障处理方法、装置、系统、终端和服务器 | |
US8719622B2 (en) | Recording and preventing crash in an appliance | |
CN105373563B (zh) | 数据库切换方法及装置 | |
US9043283B2 (en) | Opportunistic database duplex operations | |
CN107172112B (zh) | 一种计算机文件传输方法及装置 | |
CN115292003A (zh) | 服务器故障恢复方法、装置、电子设备及存储介质 | |
CN102902574B (zh) | 一种多信息流节点的协同处理方法及装置 | |
CN107168774B (zh) | 一种基于本地存储的虚拟机迁移方法及系统 | |
WO2019000791A1 (zh) | 一种以异步方式进行远程过程调用的方法及装置 | |
CN104572315A (zh) | 实现子系统间通信的方法、通信实体及分布式通信系统 | |
CN111143041A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200612 Termination date: 20200930 |
|
CF01 | Termination of patent right due to non-payment of annual fee |