CN109254839A - 确定任务触发时间的方法、构建任务定时器的方法及系统 - Google Patents

确定任务触发时间的方法、构建任务定时器的方法及系统 Download PDF

Info

Publication number
CN109254839A
CN109254839A CN201810977605.4A CN201810977605A CN109254839A CN 109254839 A CN109254839 A CN 109254839A CN 201810977605 A CN201810977605 A CN 201810977605A CN 109254839 A CN109254839 A CN 109254839A
Authority
CN
China
Prior art keywords
time slot
time
task
blip
target
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.)
Granted
Application number
CN201810977605.4A
Other languages
English (en)
Other versions
CN109254839B (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201810977605.4A priority Critical patent/CN109254839B/zh
Publication of CN109254839A publication Critical patent/CN109254839A/zh
Application granted granted Critical
Publication of CN109254839B publication Critical patent/CN109254839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开提供了一种确定任务触发时间的方法,包括:监听获知当前时间所在的第一时间槽存在待处理任务,获取第一时间槽的多个标志位,其中,标志位用于表征与其对应的第二时间槽上是否存在待处理任务,第二时间槽为第一时间槽的子级别的时间槽,不同的时间槽用于表征不同的时间段;从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位;获取与目标标志位对应的目标第二时间槽;以及确定目标第二时间槽上的待处理任务的触发时间本公开还提供了一种构建任务定时器的方法、一种确定任务触发时间的系统、一种构建任务定时器的系统、一种计算机设备及一种计算机可读存储介质。

Description

确定任务触发时间的方法、构建任务定时器的方法及系统
技术领域
本发明涉及计算机技术领域,具体涉及确定任务触发时间的方法、构建任务定时器的方法、系统、计算机设备及计算机可读存储介质。
背景技术
在服务器编程中,服务器通常需要同时处理多种任务。为了能够让这多种任务被同时并行处理,在其中某个任务需要等待时,服务器会放弃处理该任务,并在到达触发时间后再处理该任务。
基于上述场景,相关技术提供了一种基于最小堆的定时器构建方案,即通过查看每个堆的堆顶,选择离当前时间最近的一个时间作为触发时间,当达到触发时间时,执行被触发的事件,然后再次查看每个堆的堆顶,并把该被触发的事件从堆中移除。
然而,在实现本发明构思的过程中,发明人发现相关技术中至少存在如下缺陷:基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷。
发明内容
本公开目的是提供一种确定任务触发时间的方法、构建任务定时器的方法、系统、计算机设备及计算机可读存储介质,以至少解决现有技术中基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷。
本公开的一个方面提供了一种确定任务触发时间的方法,其特征在于,上述确定任务触发时间的方法包括:监听获知当前时间所在的第一时间槽存在待处理任务,获取上述第一时间槽的多个标志位,其中,上述标志位用于表征与其对应的第二时间槽上是否存在待处理任务,上述第二时间槽为上述第一时间槽的子级别的时间槽,不同的时间槽用于表征不同的时间段;从上述多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位;获取与上述目标标志位对应的目标第二时间槽;以及确定上述目标第二时间槽上的待处理任务的触发时间。
根据本公开的实施例,从上述多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位,包括:将上述多个标志位按照排列顺序分成多个标志位组合,其中,上述标志位组合中包括预设数量的上述标志位;从上述多个标志位组合中确定出目标标志位组合,其中,上述目标标志位组合用于表征与其对应的上述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务;以及从上述目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的上述目标标志位。
根据本公开的实施例,从上述多个标志位组合中确定出目标标志位组合,包括:将上述多个标志位组合中的各个标志位组合转换为第一数值,得到多个第一数值;从上述多个第一数值中确定出首次出现的用于表征对应的上述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值;以及将上述多个标志位组合中与该数值对应的标志位组合确定为目标标志位组合。
根据本公开的实施例,从上述目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的上述目标标志位,包括:从上述目标标志位组合中确定出首次出现的用于表征对应的第二时间槽上存在待处理任务的目标标志位。
根据本公开的实施例,每个所述第二时间槽所表征的时间跨度相同,确定上述目标第二时间槽上的待处理任务的触发时间,包括:确定上述当前时间对应的当前第二时间槽;计算上述当前第二时间槽距上述目标第二时间槽的时间槽数量;以及基于上述时间跨度和上述时间槽数量,确定上述目标第二时间槽上的待处理任务的触发时间。
本公开的另一个方面提供了一种构建任务定时器的方法,其特征在于,上述构建任务定时器的方法包括:获取待处理任务的触发时间;监听获知上述触发时间在当前时间所在的第一时间槽内且上述触发时间大于上述当前时间,获取上述第一时间槽的多个第二时间槽,其中,上述第二时间槽为上述第一时间槽的子级别的时间槽,且不同的时间槽用于表征不同的时间段;根据上述触发时间和上述多个第二时间槽,将上述待处理任务分配至对应的目标第二时间槽;获取与上述目标第二时间槽对应的目标标志位,并将上述目标标志位的状态设置为第一状态,其中,上述第一状态用于表征上述目标第二时间槽上存在上述待处理任务。
根据本公开的实施例,上述构建任务定时器的方法还包括:监听获知上述触发时间小于上述当前时间,从上述目标第二时间槽中移除上述待处理任务,并将上述目标标志位的状态设置为第二状态,其中,上述第二状态用于表征上述目标第二时间槽上不存在上述待处理任务。
本公开的再一个方面提供了一种确定任务触发时间的系统,其特征在于,上述确定任务触发时间的系统包括:第一获取模块,用于监听获知当前时间所在的第一时间槽存在待处理任务,获取上述第一时间槽的多个标志位,其中,上述标志位用于表征与其对应的第二时间槽上是否存在待处理任务,上述第二时间槽为上述第一时间槽的子级别的时间槽,不同的时间槽用于表征不同的时间段;第一确定模块,用于从上述多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位;第二获取模块,用于获取与上述目标标志位对应的目标第二时间槽;以及第二确定模块,用于确定上述目标第二时间槽上的待处理任务的触发时间。
根据本公开的实施例,第一确定模块包括:分配单元,用于将上述多个标志位按照排列顺序分成多个标志位组合,其中,上述标志位组合中包括预设数量的上述标志位;第一确定单元,用于从上述多个标志位组合中确定出目标标志位组合,其中,上述目标标志位组合用于表征与其对应的上述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务;以及第二确定单元,用于从上述目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的上述目标标志位。
根据本公开的实施例,第一确定单元包括:转换子单元,用于将上述多个标志位组合中的各个标志位组合转换为第一数值,得到多个第一数值;第一确定子单元,用于从上述多个第一数值中确定出首次出现的用于表征对应的上述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值;以及第二确定子单元,用于将上述多个标志位组合中与该数值对应的标志位组合确定为目标标志位组合。
根据本公开的实施例,第二确定单元还用于:从上述目标标志位组合中确定出首次出现的用于表征对应的第二时间槽上存在待处理任务的目标标志位。
根据本公开的实施例,每个所述第二时间槽所表征的时间跨度相同,第二确定模块包括:第三确定单元,用于确定上述当前时间对应的当前第二时间槽;计算单元,用于计算上述当前第二时间槽距上述目标第二时间槽的时间槽数量;以及第四确定单元,用于基于上述时间跨度和上述时间槽数量,确定上述目标第二时间槽上的待处理任务的触发时间。
本公开的又一个方面提供了一种构建任务定时器的系统,其特征在于,上述构建任务定时器的包括:第三获取模块,用于获取待处理任务的触发时间;第四获取模块,用于监听获知上述触发时间在当前时间所在的第一时间槽内且上述触发时间小于上述当前时间,获取上述第一时间槽的多个第二时间槽,其中,上述第二时间槽为上述第一时间槽的子级别的时间槽,且不同的时间槽用于表征不同的时间段;分配模块,用于根据上述触发时间和上述多个第二时间槽,将上述待处理任务分配至对应的目标第二时间槽;第一处理模块,用于获取与上述目标第二时间槽对应的目标标志位,并将上述目标标志位的状态设置为第一状态,其中,上述第一状态用于表征上述目标第二时间槽上存在上述待处理任务。
根据本公开的实施例,上述构建任务定时器的系统还包括:第二处理模块,用于监听获知所述触发时间大于所述当前时间,从上述目标第二时间槽中移除上述待处理任务,并将上述目标标志位的状态设置为第二状态,其中,上述第二状态用于表征上述目标第二时间槽上不存在上述待处理任务。
本公开的又一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的确定任务触发时间的方法的步骤,和/或如上任一项所述的构建任务定时器的方法的步骤。
本公开的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的确定任务触发时间的方法的步骤,和/或如上任一项所述的构建任务定时器的方法的步骤。
本公开提供的确定任务触发时间的方法,在当前时间所在的第一时间槽存在待处理任务的情况下,获取第一时间槽的多个标志位,从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位,并获取与该目标标志位对应的目标第二时间槽,进而可以确定目标第二时间槽上的待处理任务的触发时间,避免了现有技术中基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷,达到了降低时间复杂度,提高处理效率的效果。
附图说明
图1示意性示出了根据本公开实施例的确定任务触发时间的方法的流程图;
图2A示意性示出了根据本公开实施例的确定目标标志位的流程图;
图2B示意性示出了根据本公开实施例的确定目标标志位组合的流程图;
图2C示意性示出了根据本公开实施例的确定目标第二时间槽上的待处理任务的触发时间的流程图;
图3示意性示出了根据本公开实施例的构建任务定时器的方法的流程图;
图4示意性示出了根据本公开实施例的由两个级别的时间轮构成的定时器的示意图;
图5示意性示出了根据本公开实施例的确定任务触发时间的系统的框图;
图6A示意性示出了根据本公开实施例的第一确定模块的框图;
图6B示意性示出了根据本公开实施例的第一确定单元的框图;
图6C示意性示出了根据本公开实施例的第二确定模块的框图;
图7示意性示出了根据本公开实施例的构建任务定时器的系统的框图;
图8示意性示出了根据本公开另一实施例的构建任务定时器的系统的框图;以及
图9示意性示出了根据本公开实施例的适于实现确定任务触发时间的方法和/或构建任务定时器的方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
考虑到现有的基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷。本公开提供的确定任务触发时间的方法,在当前时间所在的第一时间槽存在待处理任务的情况下,获取第一时间槽的多个标志位,从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位,并获取与该目标标志位对应的目标第二时间槽,进而可以确定目标第二时间槽上的待处理任务的触发时间,避免了现有技术中基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷,达到了降低时间复杂度,提高处理效率的效果。
图1示意性示出了根据本公开实施例的确定任务触发时间的方法的流程图。
如图1所示,该确定任务触发时间的方法可以包括操作S101~操作S104,其中:
在操作S101,监听获知当前时间所在的第一时间槽存在待处理任务,获取第一时间槽的多个标志位,其中,标志位用于表征与其对应的第二时间槽上是否存在待处理任务,第二时间槽为第一时间槽的子级别的时间槽,不同的时间槽用于表征不同的时间段。
在操作S102,从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位。
在操作S103,获取与目标标志位对应的目标第二时间槽。
在操作S104,确定目标第二时间槽上的待处理任务的触发时间。
需要说明的是,本公开的确定任务触发时间的方案是基于多级别的时间轮实现的。具体的,本公开的实施例至少可以包括两个级别的时间轮,例如第一级别时间轮和第二级别时间轮,其中,第二级别时间轮可以是第一级别时间轮的子级别。另外,该第一级别时间轮可以包括多个时间槽(例如第一时间槽),每个时间槽可以对应一个第二级别时间轮,同样的,该第二级别时间轮也可以包括多个时间槽(例如第二时间槽),即每个属于第一级别时间轮的时间槽可以包括多个属于第二级别时间轮的时间槽。
例如,第一级别时间轮为秒级别,第二级别时间轮为毫秒级别。其中,第一级别时间轮可以包括60个秒级别时间槽,每个秒级别时间槽的时间跨度为1s;第二级别时间轮可以包括1000个毫秒级别时间槽,每个毫秒级别时间槽的时间跨度为1ms。即每个秒级别时间槽可以包括1000个毫秒级别时间槽。
根据本公开的实施例,第一时间槽可以为第一级别时间轮中的某一个时间槽,多个第二时间槽可以构成一个第二级别时间轮,即第一时间槽可以包括多个第二时间槽。
需要说明的是,本公开的实施例可以根据用户的需求设置时间轮的级别个数,例如,三个级别的时间轮、四个级别的时间轮等,在此不做限定。
根据本公开的实施例,每个第二时间槽可以对应一个标志位,也即第一时间槽可以包括多个标志位。在第二时间槽上存在待处理任务时,与该第二时间槽对应的标志位的状态可以第一状态,例如为1;在某个第二时间槽上不存在待处理任务时,与该第二时间槽对应的标志位的状态可以为第二状态,例如为0。根据本公开的实施例,可以将该多个标志位放在一个数组中,每个标志位可以作为数组中的一个元素。
在本公开的实施例中,在当前时间在第一时间槽所表示的时间段内且该第一时间槽上存在待处理任务的情况下,需要确定待处理任务的触发时间。此时,可以获取第一时间槽的多个标志位,该多个标志位可以是每个第二时间槽对应的标志位,也可以是部分第二时间槽中的每个时间槽对应的标志位,在此不做限定。
进一步,本公开实施例可以从该多个标志位中确定出表征对应的第二时间槽上存在待处理任务的目标标志位,例如,可以从该多个标志位中确定出状态为1的标志位作为目标标志位。
需要说明的是,由于第一时间槽上可能在多个待处理任务,即多个标志位中可能存在一个或多个标志位的状态为第一状态,此种情况下,可以选择排列位置为首位且状态为第一状态的标志位作为目标标志位。
根据本公开的实施例,在确定出目标标志位之后,还可以获取与该目标标志为对应的目标第二时间槽,进而可以确定出该目标第二时间槽上的待处理任务的触发时间。需要说明的是,该触发时间可以表示为从当前时间开始还有多少时间需要触发待处理任务。
通过本公开的实施例,在当前时间所在的第一时间槽存在待处理任务的情况下,获取第一时间槽的多个标志位,并从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位,再获取与目标标志位对应的目标第二时间槽,进而确定目标第二时间槽上的待处理任务的触发时间,从而可以克服现有技术中基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷,达到降低时间复杂度,提高系统处理效率的技术效果。
图2A示意性示出了根据本公开实施例的确定目标标志位的流程图。
如图2A所示,从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位可以包括操作S201~操作S203,其中:
在操作S201,将多个标志位按照排列顺序分成多个标志位组合,其中,标志位组合中包括预设数量的标志位。
在操作S202,从多个标志位组合中确定出目标标志位组合,其中,目标标志位组合用于表征与其对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务。
在操作S203,从目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位。
在本公开的实施例中,由于多个第二时间槽是按照顺序排列的,则多个第二时间槽中的各时间槽所对应的标志位也应是按照顺序排列的。例如,结合上述示例,0~1ms的第二时间槽对应的标志位排列在第一位,1~2ms的第二时间槽对应的标志位排列在第二位,...。
根据本公开的实施例,在确定待处理任务的触发时间时,为了避免现有技术通过遍历时间槽确定触发时间导致处理效率过低的缺陷,可以每次确定预设数量的第二时间槽中的一个或多个时间槽上是否存在待处理任务,若存在,则可以在该预设数量的第二时间槽内找到存在待处理任务的目标第二时间槽。
具体的,可以将多个标志位按照排列顺序分成多个标志位组合,且每个标志位组合中均包括预设数量的标志位。依次查找分配好的标志位组合,直到找到用于表征对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的目标标志位组合。进一步,可以从该目标标志位组合中确定出目标标志位,再基于标志位与第二时间槽的对应关系,确定与目标标志位对应的目标第二时间槽,进而可以确定出该目标第二时间槽上的待处理任务的触发时间。
通过本公开的实施例,通过将多个标志位按照排列顺序分成多个标志位组合,并确定出目标标志位组合,进而从目标标志位组合中确定出目标标志位,克服了现有技术通过遍历时间槽确定触发时间导致处理效率过低的缺陷,实现提高系统处理效率,降低时间耗费的目的。
图2B示意性示出了根据本公开实施例的确定目标标志位组合的流程图。
如图2B所示,从多个标志位组合中确定出目标标志位组合可以包括操作S301~操作S303,其中:
在操作S301,将多个标志位组合中的各个标志位组合转换为第一数值,得到多个第一数值。
在操作S302,从多个第一数值中确定出首次出现的用于表征对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值。
在操作S303,将多个标志位组合中与该数值对应的标志位组合确定为目标标志位组合。
在本公开的实施例中,在将多个标志位按照排列顺序分成多个标志位组合之后,还可以对各个标志位组合进行预设处理,进而判断标志位组合中是否存在用于表征对应的第二时间槽上存在待处理任务的标志位。
具体地,可以利用预设算法将每个标志位组合转换为第一数值。例如,每个标志位组合包括8个标志位,其中一个标志位组合包括的8个标志位分别为:00010000,通过逻辑运算“或”,将该“00010000”转换为1。在第一数值为1的情况下,可以表明该标志位组合对应的8个第二时间槽中的一个或多个时间槽上存在待处理任务。
根据本公开的实施例,由于可能有一个或多个第二时间槽上存在待处理任务,即可能有一个或多个标志位用于表征对应的第二时间槽上存在待处理任务,且该一个或多个标志位可能分布在不同的标志位组合中。因此,为了保证不遗漏待处理任务,可以从多个第一数值中确定出首次出现的用于表征对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值,进而可以将该数值对应的标志位组合确定为目标标志位组合。
例如,第一时间槽包括64个标志位,按照排列顺序将64个标志位分成8个标志位组合,并将每个标志位组合转换为第一数值,得到对应的8个第一数值:01001000。可以看出,第二个标志位组合和第五个标志位组合均存在状态为1的标志位。此时,为了避免遗漏待处理任务,可以将首次出现的第一数值1对应的第二个标志位组合确定为目标标志位组合。
通过本公开的实施例,确定出首次出现的用于表征对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值,并将该数值对应的标志位组合确定为目标标志位组合,不仅可以避免遗漏待处理任务,还可以避免现有技术通过遍历时间槽确定触发时间导致处理效率过低的缺陷。
作为一种可选的实施例,从目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位可以包括:从目标标志位组合中确定出首次出现的用于表征对应的第二时间槽上存在待处理任务的目标标志位。
在本公开的实施例中,该目标标志位组合中可能存在多个用于表征对应的第二时间槽上存在待处理任务的标志位,为了避免遗漏待处理任务,可以将首次出现且用于表征对应的第二时间槽上存在待处理任务的标志位确定为目标标志位。具体地,可以通过二分查找法从目标标志位组合找到目标标志位。
例如,假设目标标志位组合中包含64个标志位,利用二分查找法查找为1的目标标志位时,可以先将该64个标志位分成高32位和低32位(32对应uint32)。若低32位不为0,则表明最近的不为0的标志位在低32位中,否则,则表明最近的不为0的标志位在高32位中。假设低32位不为0,可以将低32位分成高16位和低16位(16位对应short类型),若低16位不为0,则表明最近的不为0的标志位在低16位中,否则,则表明最近的不为0的标志位在高16位中。假设低16位不为0,可以将低16位分成高8位和低8位(8位对应char类型),若低8位不为0,则表明最近的不为0的标志位在低8位中,否则,则表明最近的不为0的标志位在高8位中。假设低8位不为0,则可以直接遍历寻找首次出现不为0的标志位,并将该标志位确定目标标志位。
图2C示意性示出了根据本公开实施例的确定目标第二时间槽上的待处理任务的触发时间的流程图。
如图2C所示,确定目标第二时间槽上的待处理任务的触发时间可以包括操作S401~操作S403,其中:
在操作S401,确定当前时间对应的当前第二时间槽。
在操作S402,计算当前第二时间槽距目标第二时间槽的时间槽数量。
在操作S403,基于时间跨度和时间槽数量,确定目标第二时间槽上的待处理任务的触发时间。
由于本公开的实施例可以包括多个级别的时间槽,因此在确定当前时间所处的时间槽时可以将当前时间定位到最小级别的时间槽上。例如,若本公开的实施例中的第二时间槽为最小级别的时间槽,则可以将当前时间定位到第二时间槽上,即当前第二时间槽。
根据本公开的实施例,由于每个第二时间槽所表征的时间跨度相同,因此在确定触发时间时,可以通过计算当前第二时间槽与目标第二时间槽之间的时间槽数量,并通过计算时间跨度与时间槽数量的乘积,确定目标第二时间槽上的待处理任务的触发时间。
图3示意性示出了根据本公开实施例的构建任务定时器的方法的流程图。
如图3所示,该构建任务定时器的方法可以包括操作S501~操作S505,其中:
在操作S501,获取待处理任务的触发时间。
在操作S502,监听获知触发时间在当前时间所在的第一时间槽内且触发时间大于当前时间,获取第一时间槽的多个第二时间槽,其中,第二时间槽为第一时间槽的子级别的时间槽,且不同的时间槽用于表征不同的时间段
在操作S503,根据触发时间和多个第二时间槽,将待处理任务分配至对应的目标第二时间槽。
在操作S504,获取与目标第二时间槽对应的目标标志位,并将目标标志位的状态设置为第一状态,其中,第一状态用于表征目标第二时间槽上存在待处理任务。
在本公开的实施例中,在用户执行添加待处理任务的操作后,服务器可以获取该待处理任务的触发时间,并根据该触发时间,确定是否应该将待处理任务分配至当前时间所在的第一时间槽内。具体地,在触发时间不在当前时间所在的第一时间槽内且触发时间大于当前时间的情况下,可以将待处理任务分配至与第一时间槽同一级别或高级别的其他时间槽中。在触发时间在当前时间所在的第一时间槽内且触发时间大于当前时间的情况下,可以将待处理任务分配至第一时间槽的子级别的时间槽中。具体的,可以获取第一时间槽的多个第二时间槽,并将待处理任务分配至对应的目标第二时间槽,另外,还可以将该目标第二时间槽对应的目标标志位的状态设置为第一状态。例如,可以将给目标标志位的状态设置为1。
通过本公开的实施例,通过将存在待处理任务的目标第二时间槽对应的目标标志位的状态设置为第一状态,随着时间的流逝,当需要再次确定待处理任务的距离当前时间所剩的触发时间时,可以通过倒推的方法实现,进而可以克服现有技术中基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷,达到了降低时间复杂度,提高系统处理效率的技术效果。
作为一种可选的实施例,该构建任务定时器的方法还可以包括:监听获知触发时间小于当前时间,从目标第二时间槽中移除待处理任务,并将目标标志位的状态设置为第二状态,其中,第二状态用于表征目标第二时间槽上不存在待处理任务。
在本公开的实施例中,随着时间的流逝,在当前时间大于待处理任务的触发时间后,可以表明该待处理任务已经被响应。为了节省系统内存,可以将该待处理任务从目标第二时间槽中移除,同时,为了可以正确找到距当前时间最近的一次需要被响应的待处理任务的触发时间,还可以将该目标标志位的状态设置为第二状态,例如0。
图4示意性示出了根据本公开实施例的由两个级别的时间轮构成的定时器的示意图。
如图4所示,本公开的实施例包括两个级别的时间轮,分别是秒级别时间轮和毫秒级别时间轮,毫秒级别时间轮是秒级别时间轮的子级别。更进一步的,毫秒级别时间轮与当前第30s的时间槽相对应,即毫秒级别时间轮将第30s这一秒表示为1000ms。
在本公开的实施例中,用户每新增一个待处理任务,都可以将其放入图4中的时间槽中。如果待处理任务的触发时间不在当前这一秒内(例如第30s)内,可以将该待处理任务放入秒级别时间轮中。如果待处理任务的触发时间在当前这一秒内,可以将该待处理时间放入毫秒级时间轮中。当“当前这一秒”结束后,可以将下一秒的时间槽中的待处理任务分布到毫秒级别时间轮中。为了可以执行下一个待处理任务,需要知道下一个待处理任务的触发时间,即需要在毫秒级时间轮中寻找下一个有待处理任务的时间槽,该时间槽和“当前毫秒所在的时间槽”之间的距离可以为下一个待处理任务的触发时间。
目前,现有技术是通过遍历毫秒级时间轮的时间槽,直到找到有待处理事件的时间槽。然而,在系统中包括多个定时器时,就需要遍历每个定时器的毫秒级时间轮的时间槽,并选择一个距离“当前毫秒所在的时间槽”最近的且有待处理任务的时间槽,进而根据该时间槽计算出下一次待处理任务的触发时间。显然,现有技术的这种方案存在处理效率过低的缺陷。
本公开的实施例,通过为第二时间槽(例如毫秒级时间轮的时间槽)设置对应的标志位,每当任何一个定时器的第二时间槽中增加一个待处理任务,就可以将对应的标志位设置为第一状态,例如1。当第二时间槽中的待处理任务被移除后,还可以将对应的标志位设置为第二状态,例如0。
下面以一个具体实施例详细描述本公开查找目标标志位的过程。
结合图4,本公开的实施例将1s分成1000ms,并用128个字节共1024位表示。假设当前时间为1528858800100(2018/6/13/11:00),那么当前秒内的毫秒是第100ms。如果下一次触发时间是100ms后,也即当前秒内第200ms所在的时间槽有待处理任务,则可以执行如下操作。
1),将128char(8bit)数组转化为16个uint64(64bit)数组。
2),查看16个uint64数组中的第1个数组(又称为第1个元素),发现为0,继续查看下一个,直到第3个uint64数组不为0,其中,数组的下标从0开始。
3),在第3个uint64数组中利用二分查找法找到第一个不为0的标志位,计算其在该uint64数组中的偏移,可以得到100,即表示下一次触发时间为距离当前时间的第100ms,也即当前秒内的第200ms。
在此需要说明的是,若当前时间为第100ms,则第100ms之前的时间槽中的任务全部被移除,因此,第100ms之前的时间槽对应的标志位的状态全部为第二状态,例如0。
图5示意性示出了根据本公开实施例的确定任务触发时间的系统的框图。
如图5所示,该确定任务触发时间的系统500可以包括第一获取模块510、第一确定模块520、第二获取模块530和第二确定模块540,其中:
第一获取模块510用于监听获知当前时间所在的第一时间槽存在待处理任务,获取第一时间槽的多个标志位,其中,标志位用于表征与其对应的第二时间槽上是否存在待处理任务,第二时间槽为第一时间槽的子级别的时间槽,不同的时间槽用于表征不同的时间段。
第一确定模块520用于从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位。
第二获取模块530用于获取与目标标志位对应的目标第二时间槽。
第二确定模块540用于确定目标第二时间槽上的待处理任务的触发时间。
通过本公开的实施例,在当前时间所在的第一时间槽存在待处理任务的情况下,获取第一时间槽的多个标志位,并从多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位,再获取与目标标志位对应的目标第二时间槽,进而确定目标第二时间槽上的待处理任务的触发时间,从而可以克服现有技术中基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷,达到降低时间复杂度,提高系统处理效率的技术效果。
图6A示意性示出了根据本公开实施例的第一确定模块的框图。
如图6A所示,第一确定模块520可以包括分配单元521、第一确定单元522和第二确定单元523,其中:
分配单元521用于将多个标志位按照排列顺序分成多个标志位组合,其中,标志位组合中包括预设数量的标志位。
第一确定单元522用于从多个标志位组合中确定出目标标志位组合,其中,目标标志位组合用于表征与其对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务。
第二确定单元523用于从目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位。
通过本公开的实施例,通过将多个标志位按照排列顺序分成多个标志位组合,并确定出目标标志位组合,进而从目标标志位组合中确定出目标标志位,克服了现有技术通过遍历时间槽确定触发时间导致处理效率过低的缺陷,实现提高系统处理效率,降低时间耗费的目的。
图6B示意性示出了根据本公开实施例的第一确定单元的框图。
如图6B所示,该第一确定单元522可以包括转换子单元5221、第一确定子单元5222和第二确定子单元5223,其中:
转换子单元5221用于将多个标志位组合中的各个标志位组合转换为第一数值,得到多个第一数值。
第一确定子单元5222用于从多个第一数值中确定出首次出现的用于表征对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值。
第二确定子单元5223用于将多个标志位组合中与该数值对应的标志位组合确定为目标标志位组合。
通过本公开的实施例,确定出首次出现的用于表征对应的预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值,并将该数值对应的标志位组合确定为目标标志位组合,不仅可以避免遗漏待处理任务,还可以避免现有技术通过遍历时间槽确定触发时间导致处理效率过低的缺陷。
作为一种可选的实施例,第二确定单元还用于:从目标标志位组合中确定出首次出现的用于表征对应的第二时间槽上存在待处理任务的目标标志位。
在本公开的实施例中,该目标标志位组合中可能存在多个用于表征对应的第二时间槽上存在待处理任务的标志位,为了避免遗漏待处理任务,可以将首次出现且用于表征对应的第二时间槽上存在待处理任务的标志位确定为目标标志位。具体地,可以通过二分查找法从目标标志位组合找到目标标志位。
图6C示意性示出了根据本公开实施例的第二确定模块的框图。
如图6C所示,该第二确定模块540可以包括第三确定单元541、计算单元542和第四确定单元543,其中:
第三确定单元541用于确定当前时间对应的当前第二时间槽。
计算单元542用于计算当前第二时间槽距目标第二时间槽的时间槽数量。
第四确定单元543用于基于时间跨度和时间槽数量,确定目标第二时间槽上的待处理任务的触发时间。
图7示意性示出了根据本公开实施例的构建任务定时器的系统的框图。
如图7所示,该构建任务定时器的系统700可以包括第三获取模块710、第四获取模块720、分配模块730和第一处理模块740,其中:
第三获取模块710用于获取待处理任务的触发时间。
第四获取模块720用于监听获知触发时间在当前时间所在的第一时间槽内且触发时间大于当前时间,获取第一时间槽的多个第二时间槽,其中,第二时间槽为第一时间槽的子级别的时间槽,且不同的时间槽用于表征不同的时间段。
分配模块730用于根据触发时间和多个第二时间槽,将待处理任务分配至对应的目标第二时间槽。
第一处理模块740用于获取与目标第二时间槽对应的目标标志位,并将目标标志位的状态设置为第一状态,其中,第一状态用于表征目标第二时间槽上存在待处理任务。
通过本公开的实施例,通过将存在待处理任务的目标第二时间槽对应的目标标志位的状态设置为第一状态,随着时间的流逝,当需要再次确定待处理任务的距离当前时间所剩的触发时间时,可以通过倒推的方法实现,进而可以克服现有技术中基于最小堆的定时器构建方案存在入堆和出堆的时间复杂度高,处理效率慢的缺陷,达到了降低时间复杂度,提高系统处理效率的技术效果。
图8示意性示出了根据本公开另一实施例的构建任务定时器的系统的框图。
如图8所示,该构建任务定时器的系统700还可以包括第二处理模块810,其中:
第二处理模块810用于监听获知触发时间小于当前时间,从目标第二时间槽中移除待处理任务,并将目标标志位的状态设置为第二状态,其中,第二状态用于表征目标第二时间槽上不存在待处理任务。
在本公开的实施例中,随着时间的流逝,在当前时间大于待处理任务的触发时间后,可以表明该待处理任务已经被响应。为了节省系统内存,可以将该待处理任务从目标第二时间槽中移除,同时,为了可以正确找到距当前时间最近的一次需要被响应的待处理任务的触发时间,还可以将该目标标志位的状态设置为第二状态,例如0。
图9示意性示出了根据本公开实施例的适于实现确定任务触发时间的方法和/或构建任务定时器的方法的计算机设备的硬件架构示意图。本实施例中,计算机设备900是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,计算机设备900至少包括但不限于:可通过系统总线相互通信连接存储器910、处理器920、网络接口930。其中:
存储器910至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器910可以是计算机设备900的内部存储模块,例如该计算机设备900的硬盘或内存。在另一些实施例中,存储器910也可以是计算机设备900的外部存储设备,例如该计算机设备900上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器910还可以既包括计算机设备900的内部存储模块也包括其外部存储设备。本实施例中,存储器910通常用于存储安装于计算机设备900的操作系统和各类应用软件,例如确定任务触发时间的方法的程序代码和/或构建任务定时器的方法的程序代码等。此外,存储器910还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器920在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器920通常用于控制计算机设备900的总体操作,例如执行与计算机设备900进行数据交互或者通信相关的控制和处理等。本实施例中,处理器920用于运行存储器910中存储的程序代码或者处理数据。
网络接口930可包括无线网络接口或有线网络接口,该网络接口930通常用于在计算机设备900与其他计算机设备之间建立通信连接。例如,网络接口930用于通过网络将计算机设备900与外部终端相连,在计算机设备900与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Intemet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图9仅示出了具有部件910-930的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器910中的确定任务触发时间的方法和/或构建任务定时器的方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器920)所执行,以完成本发明。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的确定任务触发时间的方法和/或构建任务定时器的方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的确定任务触发时间的方法和/或构建任务定时器的方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (16)

1.一种确定任务触发时间的方法,其特征在于,所述方法包括:
监听获知当前时间所在的第一时间槽存在待处理任务,获取所述第一时间槽的多个标志位,其中,所述标志位用于表征与其对应的第二时间槽上是否存在待处理任务,所述第二时间槽为所述第一时间槽的子级别的时间槽,不同的时间槽用于表征不同的时间段;
从所述多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位;
获取与所述目标标志位对应的目标第二时间槽;以及
确定所述目标第二时间槽上的待处理任务的触发时间。
2.根据权利要求1所述方法,其特征在于,从所述多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位,包括:
将所述多个标志位按照排列顺序分成多个标志位组合,其中,所述标志位组合中包括预设数量的所述标志位;
从所述多个标志位组合中确定出目标标志位组合,其中,所述目标标志位组合用于表征与其对应的所述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务;以及
从所述目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的所述目标标志位。
3.根据权利要求2所述方法,其特征在于,从所述多个标志位组合中确定出目标标志位组合,包括:
将所述多个标志位组合中的各个标志位组合转换为第一数值,得到多个第一数值;
从所述多个第一数值中确定出首次出现的用于表征对应的所述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值;以及
将所述多个标志位组合中与该数值对应的标志位组合确定为目标标志位组合。
4.根据权利要求2所述方法,其特征在于,从所述目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的所述目标标志位,包括:
从所述目标标志位组合中确定出首次出现的用于表征对应的第二时间槽上存在待处理任务的目标标志位。
5.根据权利要求1所述方法,其特征在于,每个所述第二时间槽所表征的时间跨度相同,确定所述目标第二时间槽上的待处理任务的触发时间,包括:
确定所述当前时间对应的当前第二时间槽;
计算所述当前第二时间槽距所述目标第二时间槽的时间槽数量;以及
基于所述时间跨度和所述时间槽数量,确定所述目标第二时间槽上的待处理任务的触发时间。
6.一种构建任务定时器的方法,其特征在于,所述方法包括:
获取待处理任务的触发时间;
监听获知所述触发时间在当前时间所在的第一时间槽内且所述触发时间大于所述当前时间,获取所述第一时间槽的多个第二时间槽,其中,所述第二时间槽为所述第一时间槽的子级别的时间槽,且不同的时间槽用于表征不同的时间段;
根据所述触发时间和所述多个第二时间槽,将所述待处理任务分配至对应的目标第二时间槽;
获取与所述目标第二时间槽对应的目标标志位,并将所述目标标志位的状态设置为第一状态,其中,所述第一状态用于表征所述目标第二时间槽上存在所述待处理任务。
7.根据权利要求6所述方法,其特征在于,所述方法还包括:
监听获知所述触发时间小于所述当前时间,从所述目标第二时间槽中移除所述待处理任务,并将所述目标标志位的状态设置为第二状态,其中,所述第二状态用于表征所述目标第二时间槽上不存在所述待处理任务。
8.一种确定任务触发时间的系统,其特征在于,所述系统包括:
第一获取模块,用于监听获知当前时间所在的第一时间槽存在待处理任务,获取所述第一时间槽的多个标志位,其中,所述标志位用于表征与其对应的第二时间槽上是否存在待处理任务,所述第二时间槽为所述第一时间槽的子级别的时间槽,不同的时间槽用于表征不同的时间段;
第一确定模块,用于从所述多个标志位中确定出用于表征对应的第二时间槽上存在待处理任务的目标标志位;
第二获取模块,用于获取与所述目标标志位对应的目标第二时间槽;以及
第二确定模块,用于确定所述目标第二时间槽上的待处理任务的触发时间。
9.根据权利要求8所述系统,其特征在于,第一确定模块包括:
分配单元,用于将所述多个标志位按照排列顺序分成多个标志位组合,其中,所述标志位组合中包括预设数量的所述标志位;
第一确定单元,用于从所述多个标志位组合中确定出目标标志位组合,其中,所述目标标志位组合用于表征与其对应的所述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务;以及
第二确定单元,用于从所述目标标志位组合中确定出用于表征对应的第二时间槽上存在待处理任务的所述目标标志位。
10.根据权利要求9所述系统,其特征在于,第一确定单元包括:
转换子单元,用于将所述多个标志位组合中的各个标志位组合转换为第一数值,得到多个第一数值;
第一确定子单元,用于从所述多个第一数值中确定出首次出现的用于表征对应的所述预设数量的第二时间槽中的一个或多个时间槽上存在待处理任务的数值;以及
第二确定子单元,用于将所述多个标志位组合中与该数值对应的标志位组合确定为目标标志位组合。
11.根据权利要求9所述系统,其特征在于,第二确定单元还用于:
从所述目标标志位组合中确定出首次出现的用于表征对应的第二时间槽上存在待处理任务的目标标志位。
12.根据权利要求8所述系统,其特征在于,每个所述第二时间槽所表征的时间跨度相同,第二确定模块包括:
第三确定单元,用于确定所述当前时间对应的当前第二时间槽;
计算单元,用于计算所述当前第二时间槽距所述目标第二时间槽的时间槽数量;以及
第四确定单元,用于基于所述时间跨度和所述时间槽数量,确定所述目标第二时间槽上的待处理任务的触发时间。
13.一种构建任务定时器的系统,其特征在于,所述系统包括:
第三获取模块,用于获取待处理任务的触发时间;
第四获取模块,用于监听获知所述触发时间在当前时间所在的第一时间槽内且所述触发时间大于所述当前时间,获取所述第一时间槽的多个第二时间槽,其中,所述第二时间槽为所述第一时间槽的子级别的时间槽,且不同的时间槽用于表征不同的时间段;
分配模块,用于根据所述触发时间和所述多个第二时间槽,将所述待处理任务分配至对应的目标第二时间槽;
第一处理模块,用于获取与所述目标第二时间槽对应的目标标志位,并将所述目标标志位的状态设置为第一状态,其中,所述第一状态用于表征所述目标第二时间槽上存在所述待处理任务。
14.根据权利要求13所述系统,其特征在于,所述系统还包括:
第二处理模块,用于监听获知所述触发时间小于所述当前时间,从所述目标第二时间槽中移除所述待处理任务,并将所述目标标志位的状态设置为第二状态,其中,所述第二状态用于表征所述目标第二时间槽上不存在所述待处理任务。
15.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现权利要求1至5任一项所述方法的步骤,和/或权利要求6至7任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时用于实现权利要求1至5任一项所述方法的步骤,和/或权利要求6至7任一项所述方法的步骤。
CN201810977605.4A 2018-08-24 2018-08-24 确定任务触发时间的方法、构建任务定时器的方法及系统 Active CN109254839B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810977605.4A CN109254839B (zh) 2018-08-24 2018-08-24 确定任务触发时间的方法、构建任务定时器的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810977605.4A CN109254839B (zh) 2018-08-24 2018-08-24 确定任务触发时间的方法、构建任务定时器的方法及系统

Publications (2)

Publication Number Publication Date
CN109254839A true CN109254839A (zh) 2019-01-22
CN109254839B CN109254839B (zh) 2021-08-06

Family

ID=65050260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810977605.4A Active CN109254839B (zh) 2018-08-24 2018-08-24 确定任务触发时间的方法、构建任务定时器的方法及系统

Country Status (1)

Country Link
CN (1) CN109254839B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015761A (zh) * 2020-10-20 2020-12-01 江苏未来智慧信息科技有限公司 一种基于时间轮的流量控制方法
CN112181614A (zh) * 2020-09-14 2021-01-05 中国银联股份有限公司 任务超时监控方法、装置、设备、系统及存储介质
CN112418588A (zh) * 2020-09-03 2021-02-26 上海哔哩哔哩科技有限公司 任务流显示方法及装置
CN112905244A (zh) * 2020-12-22 2021-06-04 金卡智能集团股份有限公司 仪表控制方法、装置和设备
CN113742071A (zh) * 2021-09-03 2021-12-03 北京淳中科技股份有限公司 一种任务处理方法和电子设备
CN115756798A (zh) * 2022-11-25 2023-03-07 中电金信软件有限公司 任务调度方法、装置、电子设备及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052375A (en) * 1997-11-26 2000-04-18 International Business Machines Corporation High speed internetworking traffic scaler and shaper
US6718479B1 (en) * 2000-09-08 2004-04-06 International Business Machines Corporation Method, system, program, and data structures for managing hierarchical timing wheels
CN101957779A (zh) * 2010-09-16 2011-01-26 深圳天源迪科信息技术股份有限公司 定时器的管理方法
CN102752282A (zh) * 2012-05-30 2012-10-24 苏州云初网络技术有限公司 一种定时器管理模块
CN104951282A (zh) * 2015-05-21 2015-09-30 中国人民解放军理工大学 一种定时器管理系统及方法
CN106126326A (zh) * 2016-06-23 2016-11-16 东软集团股份有限公司 定时任务管理方法和装置
CN107634993A (zh) * 2017-09-05 2018-01-26 腾讯科技(深圳)有限公司 一种信息推送事件处理方法、装置及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052375A (en) * 1997-11-26 2000-04-18 International Business Machines Corporation High speed internetworking traffic scaler and shaper
US6718479B1 (en) * 2000-09-08 2004-04-06 International Business Machines Corporation Method, system, program, and data structures for managing hierarchical timing wheels
CN101957779A (zh) * 2010-09-16 2011-01-26 深圳天源迪科信息技术股份有限公司 定时器的管理方法
CN102752282A (zh) * 2012-05-30 2012-10-24 苏州云初网络技术有限公司 一种定时器管理模块
CN104951282A (zh) * 2015-05-21 2015-09-30 中国人民解放军理工大学 一种定时器管理系统及方法
CN106126326A (zh) * 2016-06-23 2016-11-16 东软集团股份有限公司 定时任务管理方法和装置
CN107634993A (zh) * 2017-09-05 2018-01-26 腾讯科技(深圳)有限公司 一种信息推送事件处理方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHUIFAN YIN等: ""Shortest Queue Time-Slot Adapting Algorithm Based on Average Reaching Times"", 《2009 SECOND INTERNATIONAL CONFERENCE ON INTELLIGENT NETWORKS AND INTELLIGENT SYSTEMS》 *
顾清山 等: ""实时操作系统中的时间车轮算法"", 《计算机系统应用》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112418588A (zh) * 2020-09-03 2021-02-26 上海哔哩哔哩科技有限公司 任务流显示方法及装置
CN112418588B (zh) * 2020-09-03 2023-08-01 上海哔哩哔哩科技有限公司 任务流显示方法及装置
CN112181614A (zh) * 2020-09-14 2021-01-05 中国银联股份有限公司 任务超时监控方法、装置、设备、系统及存储介质
CN112181614B (zh) * 2020-09-14 2024-04-19 中国银联股份有限公司 任务超时监控方法、装置、设备、系统及存储介质
CN112015761A (zh) * 2020-10-20 2020-12-01 江苏未来智慧信息科技有限公司 一种基于时间轮的流量控制方法
CN112905244A (zh) * 2020-12-22 2021-06-04 金卡智能集团股份有限公司 仪表控制方法、装置和设备
CN113742071A (zh) * 2021-09-03 2021-12-03 北京淳中科技股份有限公司 一种任务处理方法和电子设备
CN115756798A (zh) * 2022-11-25 2023-03-07 中电金信软件有限公司 任务调度方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN109254839B (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN109254839A (zh) 确定任务触发时间的方法、构建任务定时器的方法及系统
CN108388598A (zh) 电子装置、数据存储方法及存储介质
CN108121804B (zh) 跨地域分布式存储数据的方法、装置、终端及存储介质
CN105653630A (zh) 分布式数据库的数据迁移方法与装置
CN103634375A (zh) 扩容集群节点的方法、装置及设备
CN105808407A (zh) 管理设备的方法、设备和设备管理控制器
CN111813517B (zh) 任务队列的分配方法、装置、计算机设备及介质
CN107807852A (zh) 应用程序性能控制方法及设备
CN108628732B (zh) 一种应用界面控件遍历测试方法及装置
CN103543901B (zh) 生成菜单的方法和装置
CN114401250A (zh) 一种地址分配的方法及装置
CN104932933A (zh) 一种获取自旋锁的方法及装置
CN111813515A (zh) 基于多进程的任务调度方法、装置、计算机设备及介质
CN108376110A (zh) 一种自动检测方法、系统及终端设备
CN108965403A (zh) 运维监控连接的建立方法及终端设备
CN116827493A (zh) 一种基于hplc和微功率的双模通信方法及装置
CN111651007A (zh) 一种服务器机柜u位管理方法及管理系统
CN111885159B (zh) 数据采集方法、装置、电子设备及存储介质
CN109683823A (zh) 一种管理存储器多并发请求的方法及装置
CN104731992A (zh) 配电自动化建模方法及装置
CN112527363A (zh) 软件包版本更新方法、装置、系统、设备及介质
US20160224503A1 (en) Adaptive, predicative, and intelligent scanning of items in a physical layer management system
CN111767999A (zh) 数据处理方法、装置及相关产品
CN103870313A (zh) 一种虚拟机任务调度方法及系统
CN107592677B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40000244

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant