一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种任务调度方法、系统及存储介质和终端设备与流程

2022-02-22 06:10:36 来源:中国专利 TAG:


1.本发明涉及信息处理技术领域,特别涉及一种任务调度方法、系统及存储介质和终端设备。


背景技术:

2.目前很多商用的终端设备,比如信息发布、或警用终端等,会存在较多的任务,这就涉及到对任务的调度执行,可以包括生命周期上的实时调度以及超时任务调度处理,如果调度延迟带来的人力成本,时间成本和客户影响都不可估量。
3.传统的任务调度方法主要是将任务储存到任务数据库中,任务调度系统会定时地逐个扫描任务数据库,并将到时任务输出至终端设备的内存队列,当终端设备处理完任务后更新任务数据库中相应任务的任务状态。随着终端设备的不断增加,任务数据库中的任务也不断增加,这样传统的任务调度方法会带来瓶颈,这样会在任务数据库中累积较多的延时任务。


技术实现要素:

4.本发明实施例提供一种任务调度方法、系统及存储介质和终端设备,减少了任务调度累计的延时任务。
5.本发明实施例一方面提供一种任务调度方法,包括:
6.分别获取预置的任务存储队列中各项任务分别对应的存储任务分数;
7.当任一任务的存储任务分数小于或等于当前第一时间,将所述任一任务的信息移动到预备队列中,且将所述任一任务传送给任务执行系统,以便所述任务执行系统执行所述任一任务;
8.当所述任务执行系统对所述任一任务的执行结果为任务执行成功,删除所述预备队列中所述任一任务的信息;
9.当所述任务执行系统对所述任一任务的执行结果为任务执行失败,将所述预备队列中所述任一任务的信息回滚到所述任务存储队列中。
10.本发明实施例另一方面还提供一种任务调度系统,包括:
11.分数获取单元,用于分别获取预置的任务存储队列中各项任务分别对应的存储任务分数;
12.任务传送单元,用于当任一任务的存储任务分数小于或等于当前时间,将所述任一任务的信息移动到预备队列中,且将所述任一任务传送给任务执行系统,以便所述任务执行系统执行所述任一任务;
13.删除单元,用于当所述任务执行系统对所述任一任务的执行结果为任务执行成功,删除所述预备队列中所述任一任务的信息;
14.回滚单元,用于当所述任务执行系统对所述任一任务的执行结果为任务执行失败,将所述预备队列中所述任一任务的信息回滚到所述任务存储队列中。
15.本发明实施例另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质储存多个计算机程序,所述计算机程序适于由处理器加载并执行如本发明实施例一方面所述的任务调度方法。
16.本发明实施例另一方面还提供一种终端设备,包括处理器和存储器;
17.所述存储器用于储存多个计算机程序,所述计算机程序用于由处理器加载并执行如本发明实施例一方面所述的任务调度方法;所述处理器,用于实现所述多个计算机程序中的各个计算机程序。
18.可见,在本实施例的方法中,任务调度系统会分别获取任务存储队列中各项任务的存储任务分数,当任一任务的存储任务分数小于或等于当前第一时间,将任一任务的信息移动到预备队列中,且将任一任务传送给任务执行系统进行执行,当任务执行成功时删除预备队列中任一任务的信息,当任务执行失败时将任一任务的信息回滚到任务存储队列中进行重新调度。在这个过程中可以直接根据存储任务分数调度任务存储队列中的任务,而不用逐个地扫描数据库中储存的各项任务,减少了任务调度的时间,使得任务能被尽快地调度到,从而减少延时任务的积累,同时,通过任务在预备队列与任务存储队列之间的移动,可以尽量地保证任务存储队列中的任务能被成功执行。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1a是本发明实施例提供的一种任务调度方法的示意图;
21.图1b是本发明实施例提供的另一种任务调度方法的示意图;
22.图2是本发明一个实施例提供的一种任务调度方法的流程图;
23.图3是本发明一个实施例中将待存储任务储存到任务存储队列中的方法流程图;
24.图4是本发明一个应用实施例提供的一种任务调度方法的流程图;
25.图5是本发明一个应用实施例中将任务传送给任务执行系统后的方法流程图;
26.图6是本发明另一应用实施例中任务调度方法所应用于的分布式系统的示意图;
27.图7是本发明另一应用实施例中区块结构的示意图;
28.图8是本发明实施例提供的一种任务调度系统的逻辑结构示意图;
29.图9是本发明实施例提供的一种终端设备的逻辑结构示意图。
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理
解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
32.本发明实施例提供一种任务调度方法,主要可以应用于任务调度系统中,一种情况下,如图1a所示,任务调度系统和任务执行系统可以部署到同一物理设备,这样任务调度系统中只负责该任务执行系统所执行的任务进行调度;另一种情况下,如图1b所示,任务调度系统可以单独地部署到任务执行系统之外,这样,任务调度系统可以储存多个(图中以m个为例说明)任务执行系统对应的任务,并负责对各个任务执行系统所执行的任务分别进行调度。
33.具体地,本实施例的任务调度系统可以按照如下步骤实现任务调度:
34.分别获取预置的任务存储队列中各项任务分别对应的存储任务分数;当任一任务的存储任务分数小于或等于当前第一时间,将所述任一任务的信息移动到预备队列中,且将所述任一任务传送给任务执行系统,以便所述任务执行系统执行所述任一任务;当所述任务执行系统对所述任一任务的执行结果为任务执行成功,删除所述预备队列中所述任一任务的信息;当所述任务执行系统对所述任一任务的执行结果为任务执行失败,将所述预备队列中所述任一任务的信息回滚到所述任务存储队列中。
35.在实际应用中,在任务存储队列中可以包括多个(图中以n个为例说明)存储槽,在各个存储槽中储存有任务的信息。
36.在这个过程中可以直接根据存储任务分数调度任务存储队列中的任务,而不用逐个地扫描数据库中储存的各项任务,减少了任务调度的时间,使得任务能被尽快地调度到,从而减少延时任务的积累,同时,通过任务在预备队列与任务存储队列之间的移动,可以尽量地保证任务存储队列中的任务能被成功执行。
37.本发明实施例提供一种任务调度方法,主要是由上述任务调度系统所执行的方法,流程图如图2所示,包括:
38.步骤101,分别获取预置的任务存储队列中各项任务分别对应的存储任务分数。
39.可以理解,任务调度系统会事先储存任务执行系统的多项任务的信息到任务存储队列中,每项任务的信息可以包括任务的标识、任务的具体内容及任务的执行时间等信息。这样,任务调度系统可以按照一定的周期发起本实施例的任务调度流程,以对任务存储队列中的各项任务进行调度。
40.在本实施例中,任务存储队列中可以通过多个存储槽来分别储存各项任务的信息,比如可以采用redis集群的数据库来储存各项任务的信息,这样可以并发地分别对各个存储槽中的任务进行调度,减少了任务调度的时间,进而可以减少任务调度系统中的延时任务。在具体的实施例中,任务调度系统在将一任务(比如待存储任务)的信息储存到任务存储队列时,可以通过如下步骤来实现,如图3所示,包括:
41.步骤1011,获取待存储任务的信息,待存储任务的信息包括待存储任务的标识和执行时间,且还包括待存储任务的具体内容等。
42.步骤1012,确定待存储任务在任务存储队列中储存的存储槽。
43.具体地,任务调度系统可以用待存储任务的校验码或哈希值,对任务存储队列所包括的存储槽的数量取余,得到余数,并将得到的余数对应的存储槽作为待存储任务在任务存储队列中储存的存储槽。
44.步骤1013,根据上述步骤1012确定的存储槽,将待存储任务的信息储存到相应的存储槽,且设置待存储任务的存储任务分数为待存储任务的执行时间。
45.步骤1014,储存待存储任务的标识、存储槽的标识及存储任务分数之间的对应关系。
46.这样,在获取某一任务的存储任务分数时,可以根据该任务的标识在对应关系中查找得到对应的存储任务分数。
47.在上述的过程中,任务调度系统会为任务存储队列中的各项任务设置相应的存储任务分数,且首次会将任务的存储任务分数设置为任务的执行时间,在之后的任务调度过程中,任务调度系统会根据实际情况动态地确定存储任务分数,动态地确定存储任务分数的方法见之后的实施例中所述,在此不进行赘述。其中,设置各个任务的存储任务分数的作用是:基于存储任务分数来判断是否相应的任务是否到时,若到时,则需要调度相应的任务,并将任务发送给任务执行系统进行执行,否则,不会将任务发送给任务执行系统进行执行。
48.步骤102,当任一任务的存储任务分数小于或等于当前第一时间,将任一任务的信息移动到预备队列中,且将任一任务传送给任务执行系统,以便任务执行系统执行任一任务。
49.其中,在将任一任务的信息移动到预备队列时,可以将任一任务的信息中除存储任务分数之外的信息都移动到预备队列中,且任一任务在预备队列中的位置与任一任务之前在任务存储队列中的位置是一致的,比如都在存储槽i中储存。
50.这里将任一任务传送给任务执行系统时,对于上述图1a所示的情况,任务调度系统可以采用进程间通信的协议将任务的具体内容传送给任务执行系统;对于上述图1b所示的情况,任务调度系统会采用网络通信协议将任务的具体内容传送给任务执行系统。
51.步骤103,当任务执行系统对任一任务的执行结果为任务执行成功,删除预备队列中任一任务的信息。
52.步骤104,当任务执行系统对任一任务的执行结果为任务执行失败,将预备队列中任一任务的信息回滚到任务存储队列中,即将预备队列中任一任务的信息都移动到任务存储队列中。
53.需要说明的是,本实施例中的任务调度系统会设置一个预备队列,以暂时储存到时任务的信息,且在预备队列中储存任务的信息时并没有限制,只有在任务执行系统对到时任务的执行结果为任务执行成功时,才会删除预备队列中到时任务的信息;而任务执行失败时,不会丢弃到时任务,而是回滚到任务存储队列中,重新对该到时任务进行调度,这样可以保证任务存储队列中的任务都能被成功执行。
54.另外需要说明的是,除了上述步骤104中所述的任务执行系统对任务失败时,需要回滚任务的信息到任务存储队列中,在其它情况下,比如任务执行系统发生异常或者宕机时,任务无法从预备队列中删除,也不可得知该任务是否执行成功等,也需要回滚任务的信息到任务存储队列中。因此,任务调度系统在执行上述步骤102中将任一任务的信息移动到
预备队列后,还需要设置预备队列中任一任务的预备任务分数,预备任务分数为当前第二时间和1000的乘积,与剩余重试次数之和,即当前第二时间*1000 剩余重试次数,例如当前第二时间为12点55分36秒,剩余重试次数为16,先将当前第二时间转化为小时数为12.927,则预备任务分数为:12.927*1000 16。其中,剩余重试次数用于表示当任务执行失败时,再重新调度任务执行系统执行该任务的次数。
55.其中,在设置预备队列中所述任一任务的预备任务分数时,任务调度系统具体可以先根据任一任务的存储任务分数,确定剩余重试次数为预置次数或为当前第二时间与存储任务分数的差值;然后确定任一任务的预备任务分数为当前第二时间和1000的乘积,与剩余重试次数之和。其中,若当前第二时间与存储任务分数的差值小于预置次数,则确定剩余重试次数为当前第二时间与存储任务分数的差值;若当前第二时间与存储任务分数的差值不小于预置次数,则确定剩余重试次数为预置次数。
56.这样,任务调度系统会按照一定的周期,基于各项任务的预备任务分数判定任务在预备队列中是否超时,若超时,则将任务的信息回滚到任务存储队列中;若未超时,则不会回滚任务的信息,从而保证任务存储队列中的任务至少能被执行一次。
57.具体地,若任一任务的预备任务分数大于当前第三时间,将任一任务的信息回滚到任务存储队列中,在这种情况下,不会将任务的预备任务分数回滚到任务存储队列中,而是根据预备任务分数,重新设置回滚到任务存储队列中的任务的存储任务分数,并在存储队列中储存重新设置的存储任务分数。具体地,重新设置的存储任务分数为当前第二时间和1000的乘积,与剩余重试次数减1之和,即当前第二时间*1000 剩余重试次数-1。
58.进一步地,若任一任务的预备任务分数小于或等于当前第三时间,说明对任务的调度已经重试很多次,则不需要将任务的信息回滚到任务存储队列中,直接将任务的信息移动到死队列中,且任一任务在预备队列中的位置与任一任务在死队列中的位置是一致的,比如都在存储槽i中储存。这样,在死队列中的任务是调度过较多次且未被任务执行系统执行成功的任务。
59.可见,在本实施例的方法中,任务调度系统会分别获取任务存储队列中各项任务的存储任务分数,当任一任务的存储任务分数小于或等于当前第一时间,将任一任务的信息移动到预备队列中,且将任一任务传送给任务执行系统进行执行,当任务执行成功时删除预备队列中任一任务的信息,当任务执行失败时将任一任务的信息回滚到任务存储队列中进行重新调度。在这个过程中可以直接根据存储任务分数调度任务存储队列中的任务,而不用逐个地扫描数据库中储存的各项任务,减少了任务调度的时间,使得任务能被尽快地调度到,从而减少延时任务的积累,同时,通过任务在预备队列与任务存储队列之间的移动,可以尽量地保证任务存储队列中的任务能被成功执行。
60.以下以一个具体的应用实例来说明本发明的任务调度方法,本实施例的方法主要应用于如图1b所示的场景中,且本实施例的方法中涉及到如下几个队列:
61.(1)任务存储队列(store queue)
62.任务存储队列中采用redis集群数据库来储存各项任务的信息,具体地,任务存储队列包括8个存储槽,编号0-7,在将任一任务储存到任务存储队列时,可以先确定该任务对应的存储槽,比如可以根据任务的校验码或哈希值对所有存储槽的数量(slotamount)进行取余,得到的余数即为任务对应存储槽的槽序号;然后将任务的信息储存到对应的存储槽
中,且还需要设置任务的存储任务分数,具体为该任务的执行时间。
63.且任务调度系统还会设置任务存储队列的槽键值(slotkey),具体为#{topic}_#{index},其中,topic可以为任务的标识,index可以为存储槽的标识,#{}标识占位符,通过槽键值将任务与存储槽之间关联起来。每个存储槽可以采用分选集(sorted set)的结构储存任务的信息,且一个存储槽中任务的信息可以按照存储任务分数进行排序储存,每次都弹出存储任务分数小于或等于当前第一时间的任务,且将弹出任务的信息移动到预备队列中。
64.(2)预备队列(prepare queue)
65.当需要调度任务存储队列中的某一任务,则需要将任务的信息移动到预备队列中,同时也将任务传送给任务执行系统进行执行,然后根据任务执行结果删除预备队列中该任务的信息,或者将该任务的信息回滚到任务存储队列中。
66.其中,预备队列的槽键值(slotkey)也可以为#{topic}_#{index},且同一任务的信息在任务存储队列中的位置与在预备队列中的位置是一样的。本实施例中,任务调度系统还会为预备队列中各项任务设置对应的预备任务分数,具体为当前第二时间和1000的乘积,与剩余重试次数之和。
67.(3)死队列(dead queue)
68.对于调度次数大于一阈值(比如16)的任务的信息可以储存死队列,死队列的槽键值(slotkey)也可以为#{topic}_#{index},且同一任务的信息在任务存储队列中的位置、在预备队列中的位置与在死队列中的位置是一样的。
69.具体地,如图4所示,本实施例的任务调度系统可以按照如下步骤实现任务调度:
70.步骤201,任务调度系统针对当前系统中储存的任务存储队列,按照一定的周期,分别获取任务存储队列中各个存储槽对应的存储任务分数。
71.步骤202,当存储任务分数小于或等于当前第一时间,将对应任务的信息移动到预备队列。
72.步骤203,判断任务的存储任务分数与当前第二时间的差值是否小于一预置次数,比如8,如果小于,则执行步骤204之后,执行步骤206;如果不小于,则执行步骤205之后,执行步骤206。
73.步骤204,确定剩余重试次数为当前第二时间与存储任务分数的差值,将设置任务的预备任务分数为当前第二时间和1000的乘积,与剩余重试次数之和。
74.步骤205,确定剩余重试次数为预置次数,将设置任务的预备任务分数为当前第二时间和1000的乘积,与剩余重试次数之和。
75.步骤206,将任务传送给任务执行系统进行执行,将任务执行结果返回给任务调度系统。
76.步骤207,任务调度系统判断任务执行系统对任务的执行是否成功,若任务执行成功,执行步骤208;若任务执行失败,执行步骤209。
77.同时任务调度系统会按照一定的周期判断预备队列中的任务是否超时(在图中未示出),若超时,则执行步骤209,;若未超时,则不会执行209,可以返回执行上述步骤202。
78.步骤208,将任务的信息从预备队列中删除。
79.步骤209,将任务的信息从预备队列中回滚到任务存储队列中,且重新设置该任务
的存储任务分数,具体可以为上述当前第二时间和1000的乘积,与剩余重试次数减1之和,并返回执行上述步骤202。
80.需要说明的是,在任务调度系统将任务传送给任务执行系统后,具体可以通过如下的步骤实现任务的信息从预备队列中的回滚,如图5所示,包括:
81.步骤301,任务调度系统将任务的信息从任务存储队列移动到预备队列中,且将任务传送给任务执行系统。
82.步骤302,任务调度系统判断任务执行系统是否接收到传送的任务,若收到,继续执行如下步骤303;若未收到,则等待预备队列中该任务超时时,执行如下步骤306。
83.步骤303,任务调度系统判断任务执行系统对任务的执行是否成功,若成功,可以继续执行如下步骤304;若未成功,执行如下步骤306。
84.步骤304,任务调度系统判断任务执行系统是否发送事务执行提交指令,若发送成功,则执行步骤305;若未发送成功,等待预备队列中该任务超时时,执行如下步骤306。
85.这里事务执行提交指令是指任务执行系统在
86.步骤305,将任务的信息从预备队列中删除。
87.步骤306,将任务的信息从预备队列中回滚到任务存储队列中,且重新设置该任务的存储任务分数。
88.可见,本实施例的任务调度可以实现如下效果:
89.(1)任务低延迟:可以根据存储任务分数,直接从多个存储槽中移出超时任务,避免扫描任务库,大大减少了延迟时间。
90.(2)可控并发度:可控并发度取决于任务存储队列中包括的存储槽的数量,及当前开启的进行任务调度的线程数量,这两个数量都可以根据业务需要进行调控。
91.(3)高性能:采用redis集群数据库来储存各项任务的信息,可以达到较高的每秒查询率(query per second,qps),任务调度过程中从redis集群数据中拉取任务信息的时间复杂度为o(1),较简单。
92.(4)高可用:尽量保证任务存储队列中的任务能被成功执行,且任务存储队列中的任务至少被执行一次,且通过任务重新调度过程中重试次数的控制保证任务不被阻塞。
93.以下以另一具体的应用实例来说明本发明中任务调度方法,本发明实施例中的任务调度系统主要为分布式系统100,该分布式系统可以包括客户端300及多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端),客户端300与节点200之间通过网络通信的形式连接。
94.以分布式系统为区块链系统为例,参见图6是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(p2p,peer to peer)网络,p2p协议是一个运行在传输控制协议(tcp,transmission control protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
95.参见图6示出的区块链系统中各节点的功能,涉及的功能包括:
96.1)路由,节点具有的基本功能,用于支持节点之间的通信。
97.节点除具有路由功能外,还可以具有以下功能:
98.2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其它节点,供其它节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
99.例如,应用实现的业务包括:实现任务调度功能的代码,该任务调度功能主要包括:
100.分别获取预置的任务存储队列中多个存储槽中各项任务分别对应的存储任务分数;当任一任务的存储任务分数小于或等于当前第一时间,将所述任一任务的信息移动到预备队列中,且将所述任一任务传送给任务执行系统,以便所述任务执行系统执行所述任一任务;当所述任务执行系统对所述任一任务的执行结果为任务执行成功,删除所述预备队列中所述任一任务的信息;当所述任务执行系统对所述任一任务的执行结果为任务执行失败,将所述预备队列中所述任一任务的信息回滚到所述任务存储队列中。
101.3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
102.参见图7为本发明实施例提供的区块结构(block structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
103.本发明实施例还提供一种任务调度系统,其结构示意图如图8所示,具体可以包括:
104.分数获取单元10,用于分别获取预置的任务存储队列中各项任务分别对应的存储任务分数。
105.任务传送单元11,用于当所述分数获取单元10获取的任一任务的存储任务分数小于或等于当前时间,将所述任一任务的信息移动到预备队列中,且将所述任一任务传送给任务执行系统,以便所述任务执行系统执行所述任一任务。
106.删除单元12,用于当所述任务执行系统对所述任务传送单元11传送的任一任务的执行结果为任务执行成功,删除所述预备队列中所述任一任务的信息。
107.回滚单元13,用于当所述任务执行系统对所述任务传送单元11传送的任一任务的执行结果为任务执行失败,将所述预备队列中所述任一任务的信息回滚到所述任务存储队列中。
108.进一步地,本实施例的任务调度系统还包括:
109.队列储存单元14,用于获取待存储任务的信息,所述待存储任务的信息包括待存储任务的标识和执行时间;确定所述待存储任务在所述任务存储队列中储存的存储槽;根据所述确定的存储槽,将所述待存储任务的信息储存到相应的存储槽,设置所述待存储任务的存储任务分数为所述待存储任务的执行时间;储存所述待存储任务的标识、存储槽的标识及存储任务分数之间的对应关系。则上述分数获取单元10会获取队列储存单元14设置的存储任务分数。
110.其中,队列储存单元14在确定所述待存储任务在所述任务存储队列中储存的存储槽时,具体用于用所述待存储任务的校验码或哈希值,对所述任务存储队列所包括的存储槽的数量取余,得到余数,将所述余数对应的存储槽作为所述待存储任务在所述任务存储队列中储存的存储槽。
111.分数设置单元15,用于在任务传送单元11将任一任务的信息移动到预备队列中后,设置所述预备队列中所述任一任务的预备任务分数,所述预备任务分数为当前第二时间和1000的乘积,与剩余重试次数之和;若所述任一任务的预备任务分数大于当前第三时间,将所述任一任务的信息回滚到所述任务存储队列中。其中,分数设置单元15在设置所述预备队列中所述任一任务的预备任务分数时,具体用于根据所述任一任务的存储任务分数,确定所述剩余重试次数为预置次数或所述存储任务分数与当前第二时间的差值;确定所述任一任务的预备任务分数为当前第二时间和1000的乘积,与剩余重试次数之和。
112.该分数设置单元15,还用于根据所述预备任务分数,重新设置回滚到所述任务存储队列中的任务的存储任务分数,得到重新设置的存储任务分数为:当前第二时间和1000的乘积,与剩余重试次数减1之和。
113.该分数设置单元15,还用于若所述任一任务的预备任务分数小于或等于当前第三时间,将所述任一任务的信息移动到死队列中。
114.可见,本实施例的任务调度系统在任务调度的过程中可以直接根据存储任务分数调度任务存储队列中的任务,而不用逐个地扫描数据库中储存的各项任务,减少了任务调度的时间,使得任务能被尽快地调度到,从而减少延时任务的积累,同时,通过任务在预备队列与任务存储队列之间的移动,可以尽量地保证任务存储队列中的任务能被成功执行。
115.本发明实施例还提供一种终端设备,其结构示意图如图9所示,该终端设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)20(例如,一个或一个以上处理器)和存储器21,一个或一个以上存储应用程序221或数据222的存储介质22(例如一个或一个以上海量存储设备)。其中,存储器21和存储介质22可以是短暂存储或持久存储。存储在存储介质22的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对终端设备中的一系列指令操作。更进一步地,中央处理器20可以设置为与存储介质22通信,在终端设备上执行存储介质22中的一系列指令操作。
116.具体地,在存储介质22中储存的应用程序221包括列表处理的应用程序,且该程序可以包括上述列表处理装置中的分数获取单元10,任务传送单元11,删除单元12,回滚单元13,队列储存单元14和分数设置单元15,在此不进行赘述。更进一步地,中央处理器20可以设置为与存储介质22通信,在终端设备上执行存储介质22中储存的列表处理的应用程序对应的一系列操作。
117.终端设备还可以包括一个或一个以上电源23,一个或一个以上有线或无线网络接口24,一个或一个以上输入输出接口25,和/或,一个或一个以上操作系统223,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
118.上述方法实施例中所述的由任务调度系统所执行的步骤可以基于该图9所示的终端设备的结构。
119.本发明实施例另一方面还提供一种计算机可读存储介质,所述计算机可读存储介
质储存多个计算机程序,所述计算机程序适于由处理器加载并执行如上述任务调度系统所执行的任务调度方法。
120.本发明实施例另一方面还提供一种终端设备,包括处理器和存储器;
121.所述存储器用于储存多个计算机程序,所述计算机程序用于由处理器加载并执行如上述任务调度系统所执行的任务调度方法;所述处理器,用于实现所述多个计算机程序中的各个计算机程序。
122.另外,根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的任务调度方法。
123.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom)、随机存取存储器(ram)、磁盘或光盘等。
124.以上对本发明实施例所提供的一种任务调度方法、系统及存储介质和终端设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献