CN103744730A - 一种任务调度方法和装置 - Google Patents

一种任务调度方法和装置 Download PDF

Info

Publication number
CN103744730A
CN103744730A CN201410039719.6A CN201410039719A CN103744730A CN 103744730 A CN103744730 A CN 103744730A CN 201410039719 A CN201410039719 A CN 201410039719A CN 103744730 A CN103744730 A CN 103744730A
Authority
CN
China
Prior art keywords
task
moment
list
scheduling
unit period
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
CN201410039719.6A
Other languages
English (en)
Other versions
CN103744730B (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.)
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Shangke Information 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 Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Shangke Information Technology Co Ltd
Priority to CN201410039719.6A priority Critical patent/CN103744730B/zh
Publication of CN103744730A publication Critical patent/CN103744730A/zh
Application granted granted Critical
Publication of CN103744730B publication Critical patent/CN103744730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种任务调度方法和装置,包括:建立单位周期中每一时刻的任务列表;在每一单位周期的每一时刻中扫描当前时刻的任务列表,并取出当前扫描到的任务记录,并将该任务记录的任务周期标识减1,若减1后的任务周期标识大于0,则将该任务记录放回当前时刻的任务列表,若减1后的任务周期标识等于0,则执行该条任务记录所指定的任务,并确定下一次执行该任务的时刻以及初始任务周期标识,并将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务时刻的任务列表中。本发明的能够自动形成任务调度计划,实现了任务执行的透明化管理,提升了任务列表扫描效率,利用其中的任务调度规则还能够形成更加复杂的任务调度模式。

Description

一种任务调度方法和装置
技术领域
本发明涉及计算机技术,特别涉及一种任务调度方法和装置。
背景技术
任务调度是操作系统的重要组成部分,而对于实时操作系统,任务调度直接影响其实时性能。在计算机系统及各种软件系统中,存在各种各样的任务调度场景。其中,在任务调度过程中,有很多是基于时间调度的场景,在这些场景中,需要实现在特定时间点或者时间间隔内运行任务程序的功能。
如图1所示,现有的一种任务调度的过程包括:
1)、在当前时间周期或者在当前特定时间点,任务调度程序扫描任务列表,之后进入步骤2);
2)、在任务列表中选择需要执行的任务,之后进入步骤3);
3)、启动执行所选择的任务,之后进入步骤4);
4)、计算下一次启动调度程序的时间,之后进入步骤5);
5)、到达下一时间周期或者到达下一特定时间点时,进入步骤1)。
基于上述调度过程,一般可采用Java的Timer或者采用ScheduledExecutor在计算机中实现上述任务调度。
但是,上述方案在进行任务调度过程中尚存在很多不足,例如:
其一,现有调度方案在使用Java的调度组件实现任务调度时,只能进行任务的串行执行,不能进行任务的并行执行,进而使得任务调度过程效率低下;
其二,现有调度方案中,每一次调度的执行必须重新扫描任务列表,在任务数量比较多的情况下,需要长时间进行调度列表扫描,同样使得任务调度过程效率低下;
其三,现有调度方案无法查看任意时刻需要执行的任务信息,无法实现任务执行的透明化管理。
因此,现有的调度方案尚有进一步改进之处。
发明内容
有鉴于此,本发明提供一种任务调度方法和装置,以提高效率,并实现任务调度的透明化管理。
本申请的技术方案是这样实现的:
一种任务调度方法,包括:
建立单位周期中每一时刻所对应的任务列表,所述任务列表包括至少0条任务记录,所述任务记录中含有任务周期标识;
在每一单位周期的每一时刻均执行如下任务调度操作:
扫描当前时刻所对应的任务列表;
取出当前扫描到的任务记录,并将该任务记录的任务周期标识减1;
若减1后的任务周期标识大于0,则将该任务记录放回当前时刻所对应的任务列表;
若减1后的任务周期标识等于0,则执行该条任务记录所指定的任务,并确定下一次执行该任务的时刻以及初始任务周期标识,并将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务的时刻所对应的任务列表中。
进一步,所述单位周期为24小时,相邻时刻之间相差1秒,所述单位周期中共有86400个时刻,每一时刻对应一个任务列表,共有86400个任务列表。
进一步,在当前单位周期结束后,随即进入下一单位周期,并重新执行所述任务调度操作。
进一步,所述的确定下一次执行该任务的时刻以及初始任务周期标识,包括:
当前时刻与该任务的执行周期之和除以单位周期之后所取的余数,作为下一次执行该任务的时刻;该任务的执行周期除以单位周期的结果向上取整,作为该任务的初始任务周期标识。
一种任务调度装置,包括:
任务列表模块,用于保存并提供单位周期中每一时刻所对应的任务列表,所述任务列表包括至少0条任务记录,所述任务记录中含有任务周期标识;
任务调度模块,用于在每一单位周期的每一时刻均执行任务调度操作:
扫描所述任务列表模块中当前时刻所对应的任务列表,从当前时刻所对应的任务列表中取出当前扫描到的任务记录,将该任务记录的任务周期标识减1,并判断减1后的任务周期标识是否大于0;若减1后的任务周期标识大于0,则所述任务调度模块将该任务记录放回当前时刻所对应的任务列表;若减1后的任务周期标识等于0,则所述任务调度模块执行该条任务记录所指定的任务,并确定下一次执行该任务的时刻以及初始任务周期标识,并将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务的时刻所对应的任务列表中。
进一步,所述单位周期为24小时,相邻时刻之间相差1秒,所述单位周期中共有86400个时刻,每一时刻对应一个任务列表;所述任务列表模块共保存86400个任务列表。
进一步,在当前单位周期结束后,随即进入下一单位周期,所述任务调度模块在下一单位周期重新执行所述任务调度操作。
进一步,所述的确定下一次执行该任务的时刻以及初始任务周期标识,包括:
当前时刻与该任务的执行周期之和除以单位周期之后所取的余数,作为下一次执行该任务的时刻;该任务的执行周期除以单位周期的结果向上取整,作为该任务的初始任务周期标识。
从上述方案可以看出,本发明的任务调度方法和装置,能够自动形成任务调度计划,并且可以通过查询任意时刻所对应的任务列表而随时了解任意时刻的任务调度计划,实现了任务执行的透明化管理。在调度时,本发明只需扫描当前时刻所对应的任务列表,不需要扫描所有的任务信息列表,进而缩小了扫描的规模,极大地提升了任务列表扫描效率和任务执行效率。另外,本发明还可以利用其中的任务调度规则形成更加复杂的任务调度模式。
附图说明
图1为现有的一种任务调度的过程示意图;
图2为本发明任务调度方法的实施例流程图;
图3为本发明的任务调度装置的实施例结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明提供的任务调度方法,主要包括:
建立单位周期中每一时刻所对应的任务列表,所述任务列表包括至少0条任务记录,所述任务记录中含有任务周期标识;
在每一单位周期的每一时刻均执行如下任务调度操作:
扫描当前时刻所对应的任务列表;
取出当前扫描到的任务记录,并将该任务记录的任务周期标识减1;
若减1后的任务周期标识大于0,则将该任务记录放回当前时刻所对应的任务列表;
若减1后的任务周期标识等于0,则执行该条任务记录所指定的任务,并确定下一次执行该任务时刻所对应的任务列表以及初始任务周期标识,并将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务时刻所对应的任务列表中。
以下结合具体实施例,对本发明的任务调度方法进行详细介绍。
本发明实施例中,将每天的24小时作为一个单位周期,每1秒钟记为1个时刻,在24小时的单位周期中,共有24×60×60=86400个时刻。在本发明实施例中,每个时刻均对应一个任务列表,用于记录在该时刻所要监控的任务;如果在该时刻监控的某一(些)任务需要执行,则立即执行,并且根据该立即执行的任务的执行周期,确定该任务下一次执行的时刻;如果在该时刻的监控的某一(些)任务不需要执行,而是要在下一(几)个单位周期该时刻,则根据本发明实施例中的规则进行相应调整,以在下一(几)个单位周期的该时刻执行该一(些)任务。
本发明的任务调度方法实施例中,将每天(24小时)的单位周期,以秒为单位,分成86400个时刻,建立每个时刻对应的任务列表,其中,任务列表中包含其所对应时刻所要监控至少0条任务信息,每条任务信息均包括所要执行的任务,该任务的任务周期标识,可选地,每条任务信息还包括该任务的执行周期。执行周期为任务每隔多久执行1次,例如,若任务周期为1小时,则表示该任务每隔1小时执行一次,若任务周期为27小时,则表示该任务每隔27小时执行一次,等等。本发明实施例中,任务周期标识主要用于判断该任务周期标识所对应的任务是否需要立即执行,任务周期标识为整型,值为大于等于0的数字,具体方法详见后续说明。
本发明的任务调度方法实施例中,针对每个单位周期的86400个时刻,共使用86400个任务列表。在当前单位周期中,随着当前时刻的变化依次扫描每一个任务列表,并更新需要更新的任务列表。当一个单位周期结束后,进入新的单位周期时,仍然使用该86400个任务列表,同样地,仍然随着当前时刻的变化依次扫描每一个任务列表,并更新需要更新的任务列表,以此类推。
如图1所示,在每个单位周期,本发明的任务调度方法的具体调度过程包括如下各个步骤。
步骤1、扫描当前时刻所对应的任务列表,并进入步骤2;
步骤2、取出当前扫描到的任务记录,并将该任务记录的任务周期标识减1,之后进入步骤3;
步骤3、判断任务周期标识是否大于0,若大于0,则进入步骤4,若等于0,则进入步骤5;
步骤4、将该任务记录放回当前时刻所对应的任务列表,之后进入步骤8;
步骤5、执行该条任务记录所指定的任务,之后进入步骤6;
步骤6、确定下一次执行该任务的时刻以及初始任务周期标识,之后进入步骤7;
步骤7、将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务时刻所对应的任务列表中,之后进入步骤8;
步骤8、判断当前时刻所对应的任务列表是否完成扫描,如果未完成扫描,则回到步骤1以继续扫描当前时刻所对应的任务列表进而完成当前时刻所对应的任务列表中其他任务记录的任务调度过程,如果完成扫描,则在到达下一时刻时进入步骤1以进行下一个当前时刻所对应的任务列表的扫描和任务调度过程。
上述过程中,若当前时刻为一个单位周期的最后一个时刻,则当前时刻所对应的任务列表扫描结束后,其下一时刻为下一单位周期的第一个时刻。在这种情况下,随着时间的推移,当前时刻将变更为下一单位周期的第一个时刻。进而在该情况下,在当前单位周期结束后,随即进入下一单位周期,并重新执行任务调度操作。在本发明的实施例中,经过步骤8而回到步骤1后,步骤1中所对应的当前时刻为下一单位周期的第一个时刻,此时所扫描的当前时刻所对应的任务列表为86400个任务列表中的第一个时刻所对应的任务列表。
上述实施例过程,也是随着时间的推移,对86400个任务列表反复地依次进行扫描和更新的过程。
上述过程中,在步骤6中,确定下一次执行该任务的时刻以及初始任务周期标识,通过如下方法进行:
当前时刻与该任务的执行周期之和除以单位周期之后所取的余数,作为下一次执行该任务的时刻;该任务的执行周期除以单位周期的结果向上取整,作为该任务的初始任务周期标识。
具体地,用公式表示,即为:
y=(w+x)mod n
m=ceil(x/n)
其中,y为下一次执行该任务的时刻,w为当前时刻,x为该任务的执行周期,n为单位周期,m为初始任务周期标识,mod表示(w+x)除以n之后取余数,ceil()表示向上取整。
一般来说,一般任务的调度周期一般是每天执行一次,任务的执行周期一般也是24小时,对于这类一般任务,只需在其执行时刻所对应的任务列表中写入该任务即可,每一次更新该任务列表时,仅重置该任务的初始任务周期标识即可,例如以下实施例a和实施例b。
实施例a
设当前时刻为0,进而当前的任务列表为第0时刻所对应的任务列表,当前在执行任务的任务执行周期为1天,即该任务的执行周期为24小时,也就是说,当前在执行的任务是每隔24小时执行一次。该任务的执行周期用秒表示则为24×60×60=86400,单位周期用秒表示则为24×60×60=86400
那么,下一次执行该任务时刻为:
y=(0+86400)mod86400=0
该任务的初始任务周期标识为:
m=ceil(86400/86400)=1
进而下一次执行该任务时刻所对应的任务列表仍然为第0时刻所对应的任务列表,将该条任务记录以及相应的初始任务周期标识1加入回第0时刻所对应的任务列表。
随后,在下一单位周期中,当前时刻进入第0时刻时,扫描第0时刻所对应的任务列表,此时该任务的初始任务周期标识1,经过步骤2之后该任务的任务周期标识变更为0,此时执行该任务(此时,相距该任务第一次执行正好经过了24小时的执行周期),并通过步骤6确定再一次执行该任务的时刻仍然为第0时刻,再一次执行该任务的初始任务周期标识仍然为1。以此类推随后该任务的执行调度。
实施例b
设当前时刻为一个任一时刻,例如当前时刻为68745,即当前时刻为19时5分45秒,进而当前的任务列表为第68745时刻所对应的任务列表,当前在执行任务的任务执行周期为1天,即该任务的执行周期为24小时,也就是说,当前在执行的任务是每隔24小时执行一次。该任务的执行周期用秒表示则为24×60×60=86400,单位周期用秒表示则为24×60×60=86400
那么,下一次执行该任务时刻为:
y=(68745+86400)mod86400=68745
该任务的初始任务周期标识为:
m=ceil(86400/86400)=1
进而下一次执行该任务时刻所对应的任务列表仍然为第68745时刻所对应的任务列表,将该条任务记录以及相应的初始任务周期标识1加入回第68745时刻所对应的任务列表。
随后,在下一单位周期中,当前时刻进入第68745时刻时(即进入19时5分45秒时),扫描第68745时刻所对应的任务列表,此时该任务的初始任务周期标识1,经过步骤2之后该任务的任务周期标识变更为0,此时执行该任务(此时,相距该任务第一次执行正好经过了24小时的执行周期),并通过步骤6确定再一次执行该任务的时刻仍然为第68745时刻,再一次执行该任务的初始任务周期标识仍然为1。以此类推随后该任务的执行调度。
由于需要,某些任务的调度周期可能并不是每天执行。例如,某类任务的执行周期可能小于24小时,例如执行周期为5小时或者7小时等。以下实施例c和实施例d分别对执行周期为5小时或者7小时的任务进行说明。
实施例c
设当前时刻为4800,即当前时刻为1时20分,进而当前的任务列表为第4800时刻所对应的任务列表,当前在执行任务的任务执行周期为5小时,即当前在执行的任务是每隔5小时执行一次。该任务的执行周期用秒表示则为5×60×60=18000,单位周期用秒表示则为24×60×60=86400
那么,下一次执行该任务时刻为:
y=(4800+18000)mod86400=22800
该任务的初始任务周期标识为:
m=ceil(18000/86400)=1
进而下一次执行该任务时刻所对应的任务列表为第22800时刻(6时20分)的任务列表,将该条任务记录以及相应的初始任务周期标识1加入第22800时刻(6时20分)的任务列表。
随后,随着时间推移,当前时刻进入第22800时刻(6时20分)时,扫描第22800时刻(6时20分)的任务列表,此时该任务的初始任务周期标识1,经过步骤2之后该任务的任务周期标识变更为0,此时执行该任务(此时,相距该任务第一次执行正好经过了5小时的执行周期),并通过步骤6确定再一次执行该任务的时刻为第40800时刻(11时20分)时刻,再一次执行该任务的初始任务周期标识仍然为1。以此类推随后该任务的执行调度。
实施例d
设当前时刻为81000,即当前时刻为22时30分,进而当前的任务列表为第81000时刻(22时30分)的任务列表,当前在执行任务的任务执行周期为7小时,即当前在执行的任务是每隔7小时执行一次。该任务的执行周期用秒表示则为7×60×60=25200,单位周期用秒表示则为24×60×60=86400
那么,下一次执行该任务时刻为:
y=(81000+25200)mod86400=19800
该任务的初始任务周期标识为:
m=ceil(25200/86400)=1
进而下一次执行该任务时刻所对应的任务列表为第19800时刻(5时30分)的任务列表,将该条任务记录以及相应的初始任务周期标识1加入第19800时刻(5时30分)的任务列表。
随后,,随着时间推移进入下一单位周期,在下一单位周期中,当前时刻进入第19800时刻(5时30分)时,扫描第19800时刻(5时30分)的任务列表,此时该任务的初始任务周期标识1,经过步骤2之后该任务的任务周期标识变更为0,此时执行该任务(此时,相距该任务第一次执行正好经过了7小时的执行周期),并通过步骤6确定再一次执行该任务的时刻为第45000时刻(12时30分)时刻,再一次执行该任务的初始任务周期标识仍然为1。以此类推随后该任务的执行调度。
另外,某些任务的执行周期可能大于24小时,例如执行周期为25小时30分等。以下实施例e对执行周期为25小时30分的任务进行说明。
实施例e
设当前时刻为0,当前在执行任务的任务执行周期为1天零1个半小时,即该任务的执行周期为25小时30分钟,也就是说,当前在执行的任务是每隔25小时30分钟执行一次。该任务的执行周期用秒表示则为25×60×60+30×60=91800,单位周期用秒表示则为24×60×60=86400
那么,下一次执行该任务时刻为:
y=(0+91800)mod86400=5400
该任务的初始任务周期标识为:
m=ceil(91800/86400)=2
进而下一次执行该任务时刻所对应的任务列表为第5400时刻所对应的任务列表,将该条任务记录以及相应的初始任务周期标识2加入到第5400时刻所对应的任务列表。
随后,在当前的单位周期中,当前时刻进入5400时,扫描5400时刻所对应的任务列表,此时该任务的初始任务周期标识2,经过步骤2之后该任务的任务周期标识变更为1,此时不执行该任务,将该任务记录放回当前的5400时刻所对应的任务列表中(此时,实际相距该任务第一次执行仅过了1小时30分,没有达到该任务的执行周期25小时30分)。待到进入下一个单位周期时,当前时刻进入5400时,扫描5400时刻所对应的任务列表,此时该任务的任务周期标识为1,经过步骤2之后该任务的任务周期标识变更为0,此时执行该任务(此时,实际相距该任务第一次执行已过了25小时30分,达到了该任务的执行周期),并通过步骤6确定再一次执行该任务的时刻和初始任务周期标识:
y=(5400+91800)mod86400=10800
m=ceil(91800/86400)=2
进而再下一次执行该任务时刻所对应的任务列表为第10800时刻所对应的任务列表,将该条任务记录以及相应的初始任务周期标识2加入到第10800时刻所对应的任务列表。以此类推随后该任务的执行调度。
本发明实施例同时提供了一种任务调度装置,如图3所示,该装置包括:任务列表模块1和任务调度模块2。
其中,任务列表模块1用于保存并提供单位周期中每一时刻所对应的任务列表,所述任务列表包括至少0条任务记录,所述任务记录中含有任务周期标识。
任务调度模块2用于在每一单位周期的每一时刻均执行任务调度操作:扫描所述任务列表模块中当前时刻所对应的任务列表,从当前时刻所对应的任务列表中取出当前扫描到的任务记录,将该任务记录的任务周期标识减1,并判断减1后的任务周期标识是否大于0;若减1后的任务周期标识大于0,则所述任务调度模块将该任务记录放回当前时刻所对应的任务列表;若减1后的任务周期标识等于0,则所述任务调度模块执行该条任务记录所指定的任务,并确定下一次执行该任务时刻所对应的任务列表以及初始任务周期标识,并将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务时刻所对应的任务列表中。
本发明的任务调度装置实施例中,将每天的24小时作为一个单位周期,每1秒钟记为1个时刻,在24小时的单位周期中,共有24×60×60=86400个时刻。每个时刻均对应任务列表模块1中的一个任务列表,用于记录在该时刻所要监控的任务;如果在该时刻监控的某一(些)任务需要执行,则任务调度模块2立即执行该(些)任务,并且根据该立即执行的任务的执行周期,确定该任务下一次执行的时刻;如果在该时刻的监控的某一(些)任务不需要执行,而是要在下一(几)个单位周期该时刻,则根据以下规则进行相应调整,以在下一(几)个单位周期的该时刻执行该一(些)任务:
当前时刻与该任务的执行周期之和除以单位周期之后所取的余数,作为下一次执行该任务的时刻;该任务的执行周期除以单位周期的结果向上取整,作为该任务的初始任务周期标识。
具体地,用公式表示,即为:
y=(w+x)mod n
m=ceil(x/n)
其中,y为下一次执行该任务的时刻,w为当前时刻,x为该任务的执行周期,n为单位周期,m为初始任务周期标识,mod表示(w+x)除以n之后取余数,ceil()表示向上取整。
本发明提供的上述任务调度方法和装置,能够自动形成任务调度计划,并且可以通过查询任意时刻所对应的任务列表而随时了解任意时刻的任务调度计划,实现了任务执行的透明化管理。在调度时,本发明只需扫描当前时刻所对应的任务列表,不需要扫描所有的任务信息列表,进而缩小了扫描的规模,极大地提升了任务列表扫描效率和任务执行效率。另外,本发明还可以利用其中的任务调度规则形成更加复杂的任务调度模式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (8)

1.一种任务调度方法,包括:
建立单位周期中每一时刻所对应的任务列表,所述任务列表包括至少0条任务记录,所述任务记录中含有任务周期标识;
在每一单位周期的每一时刻均执行如下任务调度操作:
扫描当前时刻所对应的任务列表;
取出当前扫描到的任务记录,并将该任务记录的任务周期标识减1;
若减1后的任务周期标识大于0,则将该任务记录放回当前时刻所对应的任务列表;
若减1后的任务周期标识等于0,则执行该条任务记录所指定的任务,并确定下一次执行该任务的时刻以及初始任务周期标识,并将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务的时刻所对应的任务列表中。
2.根据权利要求1所述的任务调度方法,其特征在于:
所述单位周期为24小时,相邻时刻之间相差1秒,所述单位周期中共有86400个时刻,每一时刻对应一个任务列表,共有86400个任务列表。
3.根据权利要求1所述的任务调度方法,其特征在于:在当前单位周期结束后,随即进入下一单位周期,并重新执行所述任务调度操作。
4.根据权利要求1所述的任务调度方法,其特征在于,所述的确定下一次执行该任务的时刻以及初始任务周期标识,包括:
当前时刻与该任务的执行周期之和除以单位周期之后所取的余数,作为下一次执行该任务的时刻;该任务的执行周期除以单位周期的结果向上取整,作为该任务的初始任务周期标识。
5.一种任务调度装置,其特征在于,包括:
任务列表模块,用于保存并提供单位周期中每一时刻所对应的任务列表,所述任务列表包括至少0条任务记录,所述任务记录中含有任务周期标识;
任务调度模块,用于在每一单位周期的每一时刻均执行任务调度操作:
扫描所述任务列表模块中当前时刻所对应的任务列表,从当前时刻所对应的任务列表中取出当前扫描到的任务记录,将该任务记录的任务周期标识减1,并判断减1后的任务周期标识是否大于0;若减1后的任务周期标识大于0,则所述任务调度模块将该任务记录放回当前时刻所对应的任务列表;若减1后的任务周期标识等于0,则所述任务调度模块执行该条任务记录所指定的任务,并确定下一次执行该任务的时刻以及初始任务周期标识,并将该条任务记录以及相应的初始任务周期标识加入到下一次执行该任务的时刻所对应的任务列表中。
6.根据权利要求5所述的任务调度装置,其特征在于:所述单位周期为24小时,相邻时刻之间相差1秒,所述单位周期中共有86400个时刻,每一时刻对应一个任务列表;所述任务列表模块共保存86400个任务列表。
7.根据权利要求5所述的任务调度装置,其特征在于:在当前单位周期结束后,随即进入下一单位周期,所述任务调度模块在下一单位周期重新执行所述任务调度操作。
8.根据权利要求5所述的任务调度装置,其特征在于,所述的确定下一次执行该任务的时刻以及初始任务周期标识,包括:
当前时刻与该任务的执行周期之和除以单位周期之后所取的余数,作为下一次执行该任务的时刻;该任务的执行周期除以单位周期的结果向上取整,作为该任务的初始任务周期标识。
CN201410039719.6A 2014-01-27 2014-01-27 一种任务调度方法和装置 Active CN103744730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410039719.6A CN103744730B (zh) 2014-01-27 2014-01-27 一种任务调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410039719.6A CN103744730B (zh) 2014-01-27 2014-01-27 一种任务调度方法和装置

Publications (2)

Publication Number Publication Date
CN103744730A true CN103744730A (zh) 2014-04-23
CN103744730B CN103744730B (zh) 2017-01-11

Family

ID=50501750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410039719.6A Active CN103744730B (zh) 2014-01-27 2014-01-27 一种任务调度方法和装置

Country Status (1)

Country Link
CN (1) CN103744730B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016188076A1 (zh) * 2015-05-25 2016-12-01 深圳市中兴微电子技术有限公司 一种多径解调方法、装置及计算机存储介质
CN106815066A (zh) * 2015-11-30 2017-06-09 阿里巴巴集团控股有限公司 一种定时任务调度方法、装置及系统
CN107441587A (zh) * 2016-05-31 2017-12-08 上海微创生命科技有限公司 输液泵
CN108021439A (zh) * 2016-10-31 2018-05-11 阿里巴巴集团控股有限公司 一种任务轮询方法、任务排布方法和相关装置
CN108874627A (zh) * 2018-06-14 2018-11-23 郑州云海信息技术有限公司 一种监控任务调度方法和装置
CN109686073A (zh) * 2019-01-23 2019-04-26 积成电子股份有限公司 一种批量自动生成采集终端任务的方法
CN111008072A (zh) * 2019-12-25 2020-04-14 青梧桐有限责任公司 任务调度方法、装置、存储介质及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
CN1862575B (zh) * 2005-08-19 2011-08-03 华为技术有限公司 计划调度定时任务的方法
US8397235B2 (en) * 2008-10-07 2013-03-12 Futurewei Technologies, Inc. User tolerance based scheduling method for aperiodic real-time tasks
CN101901164B (zh) * 2009-05-27 2012-07-04 北京金山软件有限公司 时间计划调度模块和方法
CN101706739B (zh) * 2009-12-03 2013-04-10 山东科技大学 一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016188076A1 (zh) * 2015-05-25 2016-12-01 深圳市中兴微电子技术有限公司 一种多径解调方法、装置及计算机存储介质
CN106301466A (zh) * 2015-05-25 2017-01-04 深圳市中兴微电子技术有限公司 一种多径解调方法和装置
CN106301466B (zh) * 2015-05-25 2019-05-31 深圳市中兴微电子技术有限公司 一种多径解调方法和装置
CN106815066A (zh) * 2015-11-30 2017-06-09 阿里巴巴集团控股有限公司 一种定时任务调度方法、装置及系统
CN107441587A (zh) * 2016-05-31 2017-12-08 上海微创生命科技有限公司 输液泵
CN108021439A (zh) * 2016-10-31 2018-05-11 阿里巴巴集团控股有限公司 一种任务轮询方法、任务排布方法和相关装置
CN108021439B (zh) * 2016-10-31 2022-07-15 阿里巴巴集团控股有限公司 一种任务轮询方法、任务排布方法和相关装置
CN108874627A (zh) * 2018-06-14 2018-11-23 郑州云海信息技术有限公司 一种监控任务调度方法和装置
CN109686073A (zh) * 2019-01-23 2019-04-26 积成电子股份有限公司 一种批量自动生成采集终端任务的方法
CN111008072A (zh) * 2019-12-25 2020-04-14 青梧桐有限责任公司 任务调度方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN103744730B (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN103744730A (zh) 一种任务调度方法和装置
CN101567013B (zh) 一种etl调度的实现方法及装置
CN109299150B (zh) 一种可配置多数据源适配规则引擎解决方法
CN102129393A (zh) 通用定时任务管理的实现方法
CN108536530B (zh) 一种多线程任务调度方法及装置
WO2009110725A3 (ko) 3차원 응용프로그램 프레임워크 구조 및 이를 기반으로 하는 응용프로그램 구현 방법과, 3차원 응용소프트웨어 프레임워크 기반의 자동 테스트 시스템 및 그 방법
CN110244991B (zh) 一种微服务依赖分析方法及装置
CN101388038B (zh) 数据抽取、转换和加载的执行方法和装置
CN102446217A (zh) 复合事件处理设备和复合事件处理方法
CN110599073B (zh) 一种车辆调度方案的获取方法及系统
CN103903312B (zh) 自动巡检的执行方法和装置
CN103677976A (zh) 一种基于时间轮定器的事件处理方法及装置
CN103530179A (zh) 一种定时任务的处理方法及装置
CN105487971A (zh) 一种软件测试中操作步骤记录和复现的方法及系统
Bucci et al. Modeling flexible real time systems with preemptive time Petri nets
CN101635940A (zh) 程序片断执行时间的测量方法及装置
CN105450737A (zh) 一种数据处理方法、装置和系统
CN103823711A (zh) 在Java虚拟机中提供相对定时的方法及装置
CN112086178A (zh) 医护自动化排班方法、装置、计算机可读存储介质及设备
CN107220116A (zh) 一种numa架构下的沙箱环境任务处理方法及系统
CN109784524B (zh) 件量预测方法及装置、设备和存储介质
CN102096857A (zh) 一种数据处理过程的协同方法和装置
CN105354083A (zh) 一种检查调度任务前置条件的方法及装置
CN104731900A (zh) 一种Hive调度方法及装置
CN108268494B (zh) 一种数据处理与控制逻辑分离的etl调度方法和装置

Legal Events

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