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

任务调度方法、装置、计算机可读存储介质及电子设备与流程

2022-06-11 08:47:50 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,涉及一种任务调度方法、任务调度装置、计算机可读存储介质及电子设备。


背景技术:

2.在接收到需要服务器处理的任务时,通常需要涉及到任务调度技术。一般来说,需要任务调度的场景通常会设置服务器集群,根据服务器的忙闲程度进行任务的调度,这样可以降低服务器的空闲率且尽可能的避免同一服务器负载过大。但是,在多样化任务场景中,有的任务可能需要硬件资源更高级的服务器处理,有的任务可能只需要普通硬件资源的服务器处理即可,如果直接将上述方式应用至多样化任务场景,容易导致资源浪费的问题。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本技术的目的在于提供一种任务调度方法、任务调度装置、计算机可读存储介质及电子设备,在本技术中,不同的服务器对应于与其相适应的类型集合,在接收到待处理任务时,可以基于待处理任务的任务类型匹配出与其相适应的类型集合,并将该待处理任务分配至该类型集合对应的服务器中,以解决只根据服务器忙闲程度调度任务造成的资源浪费问题,可以先确定出空闲服务器,再根据类型匹配的方式使得专门的服务器处理相应的任务,这样可以提升对于资源的资源利用率,避免资源浪费。
5.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
6.根据本技术的一方面,提供一种任务调度方法,包括:
7.根据各服务器对应的工作状态确定处于空闲状态的空闲服务器;
8.若空闲服务器的数量大于1,则获取各空闲服务器对应的类型集合,得到多个类型集合;
9.确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合;
10.将待处理任务分配至目标类型集合对应的目标服务器。
11.在本技术的一种示例性实施例中,若空闲服务器的数量等于1,上述方法还包括:
12.获取空闲服务器对应的空闲类型集合;
13.确定待处理任务对应的任务类型,若空闲类型集合包含任务类型,则将待处理任务分配至空闲类型集合对应的目标服务器。
14.在本技术的一种示例性实施例中,从多个类型集合中确定包含任务类型的目标类型集合,包括:
15.从多个类型集合中确定包含任务类型的待选类型集合;
16.若待选类型集合的数量等于1,则将待选类型集合确定为目标类型集合;
17.若待选类型集合的数量大于1,则根据预设选取规则从待选类型集合中选取目标类型集合。
18.在本技术的一种示例性实施例中,根据各服务器对应的工作状态确定处于空闲状态的空闲服务器之前,上述方法还包括:
19.接收管理系统上报的特定服务器的新工作状态,根据新工作状态更新特定服务器当前的工作状态;其中,特定服务器为各服务器中的任一服务器。
20.在本技术的一种示例性实施例中,上述方法还包括:
21.在接收到待处理任务时,根据对应于待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识;
22.根据优先级标识将待处理任务添加至任务队列的第一特定位置中。
23.在本技术的一种示例性实施例中,根据优先级标识将待处理任务添加至任务队列的第一特定位置中之前,上述方法还包括:
24.确定待处理任务对应的状态参数;
25.若状态参数用于指示待处理任务为首次处理的任务,则存储待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态;
26.若状态参数用于指示待处理任务非首次处理的任务,则将待处理任务对应的任务状态由已处理状态更新为未处理状态。
27.在本技术的一种示例性实施例中,将待处理任务分配至目标类型集合对应的目标服务器之后,上述方法还包括:
28.若分配成功,则接收目标服务器返回的对应于待处理任务的处理结果,并向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第一请求;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态;
29.若分配失败,则向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第二请求,并根据优先级标识将待处理任务重新添加至任务队列中;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态。
30.在本技术的一种示例性实施例中,管理系统,还用于在将工作状态由忙碌状态更新为空闲状态之后,更新对应于目标服务器的心跳时间阈值;
31.管理系统,还用于按照单位时长获取目标服务器的心跳信息,若心跳信息大于心跳时间阈值,则将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统。
32.在本技术的一种示例性实施例中,管理系统,还用于在接收到针对新服务器的注册信息时,保存注册信息,并配置对应于新服务器的心跳时间阈值。
33.在本技术的一种示例性实施例中,将待处理任务分配至目标类型集合对应的目标服务器之后,上述方法还包括:
34.接收目标服务器返回的对应于待处理任务的处理结果;
35.若处理结果用于指示任务处理成功,则将待处理任务对应的任务状态由未处理状态更新为已处理状态。
36.在本技术的一种示例性实施例中,接收目标服务器返回的对应于待处理任务的处理结果之后,上述方法还包括:
37.若处理结果用于指示任务处理失败,则确定待处理任务对应的任务失败次数;
38.若任务失败次数大于或等于预设次数,则向管理系统发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,并向用户端返回用于表示待处理任务异常的提示信息;
39.若任务失败次数小于预设次数,则更新任务失败次数并根据优先级标识将待处理任务重新添加至任务队列的第二特定位置中。
40.在本技术的一种示例性实施例中,上述方法还包括:
41.当接收到掉线提示信息时,确定掉线提示信息对应的指定服务器;其中,指定服务器为各服务器中的任一服务器;
42.确定指定服务器对应的当前任务,并根据当前任务对应的特定优先级标识将当前任务增加至任务队列的第三特定位置中。
43.在本技术的一种示例性实施例中,上述方法还包括:
44.根据预设时长对目标服务器进行超时监测;
45.若监测到目标服务器对待处理任务的处理时长大于或等于预设时长,则向目标服务器获取对应于待处理任务的处理结果;
46.若在预设获取次数内获取到处理结果,则将待处理任务对应的任务状态由未处理状态更新为已处理状态;
47.若未在预设获取次数内获取到处理结果,则判定待处理任务异常,并向用户端返回用于表示待处理任务异常的提示信息。
48.在本技术的一种示例性实施例中,目标服务器,用于确定待处理任务对应的至少一个处理阶段以及各处理阶段对应的阶段处理时长;若检测到存在超出相应阶段处理时长的目标处理阶段,则退出执行进程,并向管理系统用于指示将目标服务器对应的工作状态更新为空闲状态的第三请求。
49.根据本技术的一方面,提供一种任务调度装置,包括:
50.服务器确定单元,用于根据各服务器对应的工作状态确定处于空闲状态的空闲服务器;
51.类型确定单元,用于若空闲服务器的数量大于1,则获取各空闲服务器对应的类型集合,得到多个类型集合;
52.类型确定单元,还用于确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合;
53.任务调配单元,用于将待处理任务分配至目标类型集合对应的目标服务器。
54.在本技术的一种示例性实施例中,若空闲服务器的数量等于1,上述装置还包括:
55.类型集合获取单元,用于获取空闲服务器对应的空闲类型集合;
56.服务器确定单元,还用于确定待处理任务对应的任务类型,若空闲类型集合包含任务类型,则将待处理任务分配至空闲类型集合对应的目标服务器。
57.在本技术的一种示例性实施例中,类型确定单元从多个类型集合中确定包含任务类型的目标类型集合,包括:
58.从多个类型集合中确定包含任务类型的待选类型集合;
59.若待选类型集合的数量等于1,则将待选类型集合确定为目标类型集合;
60.若待选类型集合的数量大于1,则根据预设选取规则从待选类型集合中选取目标类型集合。
61.在本技术的一种示例性实施例中,上述装置还包括:
62.工作状态更新单元,用于在服务器确定单元根据各服务器对应的工作状态确定处于空闲状态的空闲服务器之前,接收管理系统上报的特定服务器的新工作状态,根据新工作状态更新特定服务器当前的工作状态;其中,特定服务器为各服务器中的任一服务器。
63.在本技术的一种示例性实施例中,上述装置还包括:
64.优先级标识确定单元,用于在接收到待处理任务时,根据对应于待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识;
65.任务添加单元,用于根据优先级标识将待处理任务添加至任务队列的第一特定位置中。
66.在本技术的一种示例性实施例中,上述装置还包括:
67.参数确定单元,用于在任务添加单元根据优先级标识将待处理任务添加至任务队列的第一特定位置中之前,确定待处理任务对应的状态参数;
68.信息存储单元,用于在状态参数用于指示待处理任务为首次处理的任务时,存储待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态;
69.处理状态更新单元,用于在状态参数用于指示待处理任务非首次处理的任务时,将待处理任务对应的任务状态由已处理状态更新为未处理状态。
70.在本技术的一种示例性实施例中,上述装置还包括:
71.请求发送单元,用于在任务调配单元将待处理任务分配至目标类型集合对应的目标服务器之后,若分配成功,则接收目标服务器返回的对应于待处理任务的处理结果,并向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第一请求;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态;
72.请求发送单元,还用于若分配失败,则向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第二请求,并根据优先级标识将待处理任务重新添加至任务队列中;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态。
73.在本技术的一种示例性实施例中,管理系统,还用于在将工作状态由忙碌状态更新为空闲状态之后,更新对应于目标服务器的心跳时间阈值;
74.管理系统,还用于按照单位时长获取目标服务器的心跳信息,若心跳信息大于心跳时间阈值,则将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统。
75.在本技术的一种示例性实施例中,管理系统,还用于在接收到针对新服务器的注册信息时,保存注册信息,并配置对应于新服务器的心跳时间阈值。
76.在本技术的一种示例性实施例中,上述装置还包括:
77.处理状态更新单元,还用于在任务调配单元将所述待处理任务分配至所述目标类型集合对应的目标服务器之后,接收所述目标服务器返回的对应于所述待处理任务的处理结果;若所述处理结果用于指示任务处理成功,则将所述待处理任务对应的任务状态由所
述未处理状态更新为已处理状态。
78.在本技术的一种示例性实施例中,上述装置还包括:
79.失败次数确定单元,用于在处理状态更新单元接收目标服务器返回的对应于待处理任务的处理结果之后,若处理结果用于指示任务处理失败,则确定待处理任务对应的任务失败次数;
80.消息提醒单元,用于任务失败次数大于或等于预设次数时,向管理系统发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,并向用户端返回用于表示待处理任务异常的提示信息;
81.任务添加单元,还用于在任务失败次数小于预设次数时,更新任务失败次数并根据优先级标识将待处理任务重新添加至任务队列的第二特定位置中。
82.在本技术的一种示例性实施例中,其中:
83.服务器确定单元,还用于当接收到掉线提示信息时,确定掉线提示信息对应的指定服务器;其中,指定服务器为各服务器中的任一服务器;
84.任务添加单元,还用于确定指定服务器对应的当前任务,并根据当前任务对应的特定优先级标识将当前任务增加至任务队列的第三特定位置中。
85.在本技术的一种示例性实施例中,上述装置还包括:
86.超时监测单元,用于根据预设时长对目标服务器进行超时监测;若监测到目标服务器对待处理任务的处理时长大于或等于预设时长,则向目标服务器获取对应于待处理任务的处理结果;若在预设获取次数内获取到处理结果,则将待处理任务对应的任务状态由未处理状态更新为已处理状态;若未在预设获取次数内获取到处理结果,则判定待处理任务异常,并向用户端返回用于表示待处理任务异常的提示信息。
87.在本技术的一种示例性实施例中,目标服务器,用于确定待处理任务对应的至少一个处理阶段以及各处理阶段对应的阶段处理时长;若检测到存在超出相应阶段处理时长的目标处理阶段,则退出执行进程,并向管理系统用于指示将目标服务器对应的工作状态更新为空闲状态的第三请求。
88.根据本技术的一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的方法。
89.根据本技术的一方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一项的方法。
90.根据本技术的一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
91.本技术示例性实施例可以具有以下部分或全部有益效果:
92.在本技术的一示例实施方式所提供的任务调度方法中,可以根据各服务器对应的工作状态确定处于空闲状态的空闲服务器;若空闲服务器的数量大于1,则获取各空闲服务器对应的类型集合,得到多个类型集合;确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合;将待处理任务分配至目标类型集合对应的目标服务器。可见,在本技术中,不同的服务器对应于与其相适应的类型集合,在接收到待处理任
务时,可以基于待处理任务的任务类型匹配出与其相适应的类型集合,并将该待处理任务分配至该类型集合对应的服务器中,以解决只根据服务器忙闲程度调度任务造成的资源浪费问题,可以先确定出空闲服务器,再根据类型匹配的方式使得专门的服务器处理相应的任务,这样可以提升对于资源的资源利用率,避免资源浪费。此外,还可以提升服务器和任务之间的匹配度,避免将任务分配至不相关的服务器,也可以避免对同一服务器分配过多的任务,造成任务堆积过多从而导致的任务处理不及时的问题,有利于提升对于任务的处理效率。
93.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
94.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
95.图1示出了可以应用本技术实施例的一种任务调度方法及任务调度装置的示例性系统架构的示意图;
96.图2示意性示出了根据本技术的一个实施例的任务调度方法的流程图;
97.图3示意性示出了根据本技术的一个实施例的任务调度方法的流程图;
98.图4示意性示出了根据本技术的一个实施例的任务调度系统的结构示意图;
99.图5示意性示出了根据本技术的一个实施例中的任务调度装置的结构框图;
100.图6示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
101.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本技术的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本技术的各方面变得模糊。
102.此外,附图仅为本技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
103.图1示出了可以应用本技术实施例的一种任务调度方法及任务调度装置的示例性应用环境的系统架构的示意图。
104.如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
105.本技术实施例所提供的任务调度方法一般由服务器105执行,相应地,任务调度装置一般设置于服务器105中。但本领域技术人员容易理解的是,本技术实施例所提供的任务调度方法也可以由终端设备101、102或103执行,相应的,任务调度装置也可以设置于终端设备101、102或103中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,服务器105可以根据各服务器对应的工作状态确定处于空闲状态的空闲服务器;若空闲服务器的数量大于1,则获取各空闲服务器对应的类型集合,得到多个类型集合;确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合;将待处理任务分配至目标类型集合对应的目标服务器。
106.本示例实施方式提供了一种任务调度方法。该任务调度方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图2所示,该任务调度方法可以包括以下步骤s210至步骤s240。
107.步骤s210:根据各服务器对应的工作状态确定处于空闲状态的空闲服务器。
108.步骤s220:若空闲服务器的数量大于1,则获取各空闲服务器对应的类型集合,得到多个类型集合。
109.步骤s230:确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合。
110.步骤s240:将待处理任务分配至目标类型集合对应的目标服务器。
111.需要说明的是,步骤s210至步骤s240及对应的实施例可以由调度系统实施,调度系统可以运行于预先设定的服务器/电子设备中。
112.可见,在图2中,不同的服务器对应于与其相适应的类型集合,在接收到待处理任务时,可以基于待处理任务的任务类型匹配出与其相适应的类型集合,并将该待处理任务分配至该类型集合对应的服务器中,以解决只根据服务器忙闲程度调度任务造成的资源浪费问题,可以先确定出空闲服务器,再根据类型匹配的方式使得专门的服务器处理相应的任务,这样可以提升对于资源的资源利用率,避免资源浪费。此外,还可以提升服务器和任务之间的匹配度,避免将任务分配至不相关的服务器,也可以避免对同一服务器分配过多的任务,造成任务堆积过多从而导致的任务处理不及时的问题,有利于提升对于任务的处理效率。
113.下面,对于本示例实施方式的上述步骤进行更加详细的说明。
114.在步骤s210中,根据各服务器对应的工作状态确定处于空闲状态的空闲服务器。
115.具体地,上述的各服务器可以来自于同一服务器集群也可以来自于不同的服务器集群,本技术实施例不作限定。各服务器对应的工作状态可以相同也可以不同,工作状态至少可以包括:忙碌状态、空闲状态、异常状态(如,掉线),可选的,工作状态也可以包括其他
状态,本技术实施例不作限定。此外,各服务器对应的工作状态可以通过数字、文字、字符串等任意形式进行表示,本技术实施例不作限定。
116.此外,示例性地,上述的各服务器可以为渲染服务器,渲染服务器用于处理渲染任务。
117.可选的,在根据各服务器对应的工作状态确定处于空闲状态的空闲服务器之前,上述方法还可以包括:对各服务器分别配置类型集合。其中,各服务器对应的类型集合可以相同也可以不同,不同的类型集合对应的类型数量是不同的,基于此,不同的服务器可以处理的任务类型可以是不同的,举例来说,服务器a可以处理任务类型为t1、t2的任务,服务器b可以处理任务类型为t3、t4的任务,服务器c可以处理任务类型为t1、t2、t3、t4的任务,服务器d可以处理任务类型为t2、t3的任务,这样可以实现对于服务器的区分,使得不同硬件配置的服务器可以处理最适配的任务,使得各个服务器都可以最大化发挥自身的特性,有利于提升任务处理效率以及服务器资源的利用率。
118.作为一种可选的实施例,根据各服务器对应的工作状态确定处于空闲状态的空闲服务器之前,上述方法还包括:接收管理系统上报的特定服务器的新工作状态,根据新工作状态更新特定服务器当前的工作状态;其中,特定服务器为各服务器中的任一服务器。
119.具体地,管理系统用于在检测到任一服务器的新工作状态时,向调度系统上报该新工作状态,以使得管理系统和调度系统中存储的各服务器的工作状态是一致的。其中,新工作状态可以为空闲状态、忙碌状态或异常状态。
120.可见,实施该可选的实施例,可以接收管理系统及时上报的服务器的工作状态,从而可以在接收到待处理任务时,及时确定出准确的空闲服务器,有利于提升对于任务的调度效率,进而有利于提升任务处理效率。
121.在步骤s220中,若空闲服务器的数量大于1,则获取各空闲服务器对应的类型集合,得到多个类型集合。
122.具体地,多个类型集合中各类型集合可以是不同的,多个类型集合中也可以存在相同的类型集合,本技术实施例不作限定。
123.作为一种可选的实施例,若空闲服务器的数量等于1,上述方法还包括:获取空闲服务器对应的空闲类型集合;确定待处理任务对应的任务类型,若空闲类型集合包含任务类型,则将待处理任务分配至空闲类型集合对应的目标服务器。
124.具体地,在将待处理任务分配至空闲类型集合对应的目标服务器之后,上述方法还可以包括:调度系统可以接收目标服务器返回的对应于待处理任务的处理结果,若处理结果用于指示任务处理成功,则将待处理任务对应的任务状态由未处理状态更新为已处理状态:若处理结果用于指示任务处理失败,则确定待处理任务对应的任务失败次数;若任务失败次数大于或等于预设次数,则向管理系统发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,并向用户端返回用于表示待处理任务异常的提示信息;若任务失败次数小于预设次数,则更新任务失败次数并根据优先级标识将待处理任务重新添加至任务队列的第二特定位置中。
125.进而,管理系统可以在处理结果用于指示任务处理成功且调度系统指示变更目标服务器对应的工作状态时将工作状态由忙碌状态更新为空闲状态,以使得目标服务器可以接收下一轮的任务分配;进而,还可以更新对应于目标服务器的心跳时间阈值,并按照单位
时长获取目标服务器的心跳信息,若心跳信息大于心跳时间阈值,则将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统,避免调度系统向异常的服务器分配任务,有利于提升任务的处理效率。进而,管理系统还可以处理结果用于指示任务处理失败且调度系统指示变更目标服务器对应的工作状态时将工作状态由忙碌状态更新为异常状态。
126.此外,可选的,将待处理任务分配至空闲类型集合对应的目标服务器之后,上述方法还可以包括:若分配成功,则调度系统接收目标服务器返回的对应于待处理任务的处理结果,并向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第一请求;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态;若分配失败,则调度系统向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第二请求,并根据优先级标识将待处理任务重新添加至任务队列中;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态。
127.可见,实施该可选的实施例,可以公开空闲服务器的数量为一个或多个时的不同调度方式,使得本技术可以应对更多样的应用场景,提升本技术技术方案的鲁棒性。
128.在步骤s230中,确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合。
129.具体地,待处理任务可以为渲染任务(如,烘焙等)也可以为其他任务,本技术实施例不作限定。
130.作为一种可选的实施例,从多个类型集合中确定包含任务类型的目标类型集合,包括:从多个类型集合中确定包含任务类型的待选类型集合;若待选类型集合的数量等于1,则将待选类型集合确定为目标类型集合;若待选类型集合的数量大于1,则根据预设选取规则从待选类型集合中选取目标类型集合。
131.具体地,待选类型集合的数量可以为一个或多个,举例来说,若任务类型为t1,包含任务类型的待选类型集合可以有:待选类型集合s={t1,t3,t5}、待选类型集合f={t1,t2}、待选类型集合g={t1}、待选类型集合w={t8,t6,t1}。
132.此外,可选的,预设选取规则可以表示为函数表达式、文字信息等任一形式,本技术实施例不作限定。基于此,若预设选取规则用于限定随机选取,根据预设选取规则从待选类型集合中选取目标类型集合,包括:从待选类型集合中随机选取目标类型集合。若预设选取规则用于限定类型数量最少的类型集合作为目标类型集合根据预设选取规则从待选类型集合中选取目标类型集合,包括:从待选类型集合中选取类型数量最少的类型集合作为目标类型集合。若预设选取规则用于限定类型数量最多的类型集合作为目标类型集合根据预设选取规则从待选类型集合中选取目标类型集合,包括:从待选类型集合中选取类型数量最多的类型集合作为目标类型集合。
133.可见,实施该可选的实施例,可以在待选类型集合的数量为一个或多个时,确定相应的目标类型集合,以将待处理任务分配至目标类型集合对应的目标服务器,有利于提升对于服务器资源的利用率。
134.作为一种可选的实施例,上述方法还包括:在接收到待处理任务时,根据对应于待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识;根据优先级标识将待处理任务添加至任务队列的第一特定位置中。
135.具体地,优先级标识可以表示为数字、文字、字符等任一形式,本技术实施例不作限定。任务队列可以存储于消息中间件(如,rabbitmq)中,任务队列中可以包括一个或多个待处理的任务,也可以不包含任务,若任务队列中包含多个待处理的任务,多个待处理的任务依据优先级标识进行由大到小/由小到大的顺序进行排列,或依据其他方式进行排列,本技术实施例不作限定。
136.此外,可选的,根据对应于待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识,包括:获取对应于待处理任务的任务接收时间(如,22:00)以及待处理任务的预设优先级(如,l3);将任务接收时间和预设优先级进行归一化处理,得到时间参数(如,2200)和优先级参数(如,3);将时间参数和优先级参数代入预设表达式(如,时间参数-优先级参数;或者,a1*时间参数-a2*优先级参数,a1和a2是表示为常数的权重),以计算出待处理任务的优先级标识(如,2197)。
137.此外,根据优先级标识将待处理任务添加至任务队列的第一特定位置中,包括:从任务队列中确定大于该优先级标识(如,2197)且相邻的指定任务的标识(如,2198),将指定任务对应的位置确定为第一特定位置,并将标识大于该优先级标识的其他任务在任务队列中的位置进行更新;其中,确定出的第一特定位置可以是任务队列中任一位置,本技术不限定任务队列中第一特定位置是固定位置。举例来说,若任务队列中包括任务1(处于位置1)-任务2(处于位置2)-任务3(处于位置3),任务1为优先级最高的任务,若任务2是上述的指定任务,则可以将任务2的位置确定为第一特定位置,并将任务2的位置更新为位置3和任务3的位置更新为位置4,进而,任务队列中包括任务1(处于位置1)-待处理任务(处于位置2)-任务2(处于位置3)-任务3(处于位置4)。
138.可见,实施该可选的实施例,可以根据待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识,再基于该优先级标识将待处理任务添加至任务队列中,实现对于优先级标识的个性化设定,从而实现对于待处理任务优先级的精准判定。
139.作为一种可选的实施例,根据优先级标识将待处理任务添加至任务队列的第一特定位置中之前,上述方法还包括:确定待处理任务对应的状态参数;若状态参数用于指示待处理任务为首次处理的任务,则存储待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态;若状态参数用于指示待处理任务非首次处理的任务,则将待处理任务对应的任务状态由已处理状态更新为未处理状态。
140.具体地,状态参数可以至少可以包括对于待处理任务的处理次数(如,2次),此外,可选的,状态参数也可以包括其他参数(如,任务处理历史记录参数),本技术实施例不作限定。若状态参数用于指示处理次数为0,则可以判定待处理任务为首次处理的任务,若状态参数用于指示处理次数大于0,则可以判定待处理任务非首次处理的任务。
141.此外,待处理任务对应的任务信息可以用于描述任务的相关信息,如,任务的具体内容。此外,任务状态可以通过任一形式进行表示,任务状态除了包括未处理状态和已处理状态之外,还可以包括其他状态,本技术实施例不作限定。
142.可见,实施该可选的实施例,可以基于状态参数区分任务是否为首次处理的任务,从而实现对于待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态的存储,或是将待处理任务对应的任务状态由已处理状态更新为未处理状态,从而可以
实现对于任务的处理周期的准确记录,避免对任务误处理。
143.在步骤s240中,将待处理任务分配至目标类型集合对应的目标服务器。
144.具体地,将待处理任务分配至目标类型集合对应的目标服务器,包括:向目标类型集合对应的目标服务器发送任务分配指令,任务分配指令用于指示待处理任务对应的存储位置(即,第一特定位置),目标服务器接收到任务分配指令之后,可以从任务队列的第一特定位置中获取该待处理任务,并执行该待处理任务。
145.作为一种可选的实施例,将待处理任务分配至目标类型集合对应的目标服务器之后,上述方法还包括:若分配成功,则接收目标服务器返回的对应于待处理任务的处理结果,并向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第一请求;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态;若分配失败,则向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第二请求,并根据优先级标识将待处理任务重新添加至任务队列中;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态。
146.具体地,上述的第一请求和下述的第二请求、第三请求的数据格式也可以相同但数据内容可以是不同的。此外,上述方法还可以包括:向目标类型集合对应的目标服务器发送任务分配指令,若在指定单位时间(如5毫秒)内接收到目标服务器对任务分配指令的反馈消息,则判定分配成功;若在指定单位时间(如5毫秒)内未接收到目标服务器对任务分配指令的反馈消息,则判定分配失败;其中,反馈消息用于表示目标服务器的指令接收情况。
147.可见,实施该可选的实施例,根据任务分配情况及时更新服务器的工作状态,以便提升对于服务器资源的利用率。
148.作为一种可选的实施例,管理系统,还用于在将工作状态由忙碌状态更新为空闲状态之后,更新对应于目标服务器的心跳时间阈值;管理系统,还用于按照单位时长获取目标服务器的心跳信息,若心跳信息大于心跳时间阈值,则将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统。
149.具体地,心跳时间阈值(如,3秒)可以用于限定服务器执行任务的最大时长,不同的服务器对应心跳时间阈值可以相同也可以不同,本技术实施例不作限定。心跳信息至少用于指示目标服务器接到分配的任务之后经过的时长,若心跳信息大于心跳时间阈值,则表示服务器可能掉线了,进而可以将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统,以使得调度系统可以及时将该服务器处理的任务重新添加至任务队列,并为其重新分配服务器,以保证任务可以及时被处理。
150.此外,可选的,将工作状态由忙碌状态更新为异常状态之后,上述方法还可以包括:向用户端返回用于表示目标服务器异常的提示信息。
151.可见,实施该可选的实施例,可以通过管理系统实现对于服务器的监控,以基于对心跳信息和心跳时间阈值的比对及时发现出现异常的服务器,并及时更新该服务器的工作状态,避免任务不能被及时处理,从而提升对于任务的处理效率。
152.作为一种可选的实施例,管理系统,还用于在接收到针对新服务器的注册信息时,保存注册信息,并配置对应于新服务器的心跳时间阈值。
153.具体地,注册信息可以用于实现对于新服务器的水平扩展,注册信息具体可以包括新服务器对应的标识符、地址、类型集合等信息,本技术实施例不作限定。
154.可见,实施该可选的实施例,可以通过注册信息新增新服务器,实现服务器的水平
扩展,方便相关人员基于需求进行实时的增减,以应对不同量级的任务。
155.作为一种可选的实施例,将待处理任务分配至目标类型集合对应的目标服务器之后,上述方法还包括:接收目标服务器返回的对应于待处理任务的处理结果;若处理结果用于指示任务处理成功,则将待处理任务对应的任务状态由未处理状态更新为已处理状态。
156.具体地,将待处理任务对应的任务状态由未处理状态更新为已处理状态之后,上述方法还可以包括:将任务队列中的待处理任务删除,并对该待处理任务之后的任务进行调度。
157.可见,实施该可选的实施例,可以在任务处理成功的情况下,及时更新任务的处理状态,避免任务被再次分配。
158.作为一种可选的实施例,接收目标服务器返回的对应于待处理任务的处理结果之后,上述方法还包括:若处理结果用于指示任务处理失败,则确定待处理任务对应的任务失败次数;若任务失败次数大于或等于预设次数,则向管理系统发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,并向用户端返回用于表示待处理任务异常的提示信息;若任务失败次数小于预设次数,则更新任务失败次数并根据优先级标识将待处理任务重新添加至任务队列的第二特定位置中。
159.具体地,任务失败次数可以用于限定该任务被处理失败的次数,若任务失败次数大于或等于预设次数,则表示服务器可能存在问题,需要向管理系统发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,若任务失败次数小于预设次数,表示服务器不一定存在问题,则可以为其重新分配服务器,而不请求管理系统更新目标服务器的工作状态。
160.可见,实施该可选的实施例,可以在任务失败时自动进行补偿重试,提高渲染任务成功率及自动化程度。
161.作为一种可选的实施例,上述方法还包括:当接收到掉线提示信息时,确定掉线提示信息对应的指定服务器;其中,指定服务器为各服务器中的任一服务器;确定指定服务器对应的当前任务,并根据当前任务对应的特定优先级标识将当前任务增加至任务队列的第三特定位置中。
162.具体地,第一特定位置、第二特定位置和第三特定位置可以为同一位置也可以为不同位置,本技术实施例不作限定,第一特定位置、第二特定位置和第三特定位置仅用于区分不同的添加阶段,不用作对于添加位置的准确限定。
163.此外,掉线提示信息可以用于指示掉线的指定服务器,掉线提示信息指示的指定服务器可以为一个或多个,本技术实施例不作限定。对应的,指定服务器可以为一个或多个。其中,指定服务器可以为前述的目标服务器也可以为其他服务器,本技术实施例不作限定。具体地,若指定服务器为前述的目标服务器,则当前任务为前述的待处理任务。
164.此外,可选的,确定指定服务器对应的当前任务,包括:确定指定服务器未处理完成的任务作为当前任务。若存在多个指定服务器,则确定指定服务器对应的当前任务,包括:确定各个指定服务器未处理完成的任务作为各个指定服务器分别对应的当前任务。
165.基于此,可选的,若存在多个指定服务器,根据当前任务对应的特定优先级标识将当前任务增加至任务队列的第三特定位置中,包括:根据各个当前任务对应的特定优先级标识从任务队列中确定各个当前任务分别对应的第三特定位置,将各个当前任务分别添加
至各自对应的第三特定位置中;其中,不同的当前任务对应于不同的第三特定位置。
166.此外,根据当前任务对应的特定优先级标识将当前任务增加至任务队列的第三特定位置中之前,上述方法还可以包括:根据对应于当前任务的任务接收时间以及当前任务的预设优先级生成对应于当前任务的特定优先级标识。其中,特定优先级标识可以为首次分配当前任务时生成的,因此,在服务器掉线时,重新分配该当前任务时可以沿用该特定优先级标识,以使得该当前任务可以添加至任务队列的较前的位置,使其可以更早地被分配,以提升当前任务的处理效率。
167.可见,实施该可选的实施例,可以在任务处理失败时,将服务器未处理完的任务重新添加至任务队列中,避免对任务漏处理,同时也可以通过对于任务的及时添加,提升对于任务处理效率。
168.作为一种可选的实施例,上述方法还包括:根据预设时长对目标服务器进行超时监测;若监测到目标服务器对待处理任务的处理时长大于或等于预设时长,则向目标服务器获取对应于待处理任务的处理结果;若在预设获取次数(如,3次)内获取到处理结果,则将待处理任务对应的任务状态由未处理状态更新为已处理状态;若未在预设获取次数内获取到处理结果,则判定待处理任务异常,并向用户端返回用于表示待处理任务异常的提示信息。
169.具体地,预设时长可以为预先设定的时长,也可以为从时间对照表中获取的时长,本技术实施例不作限定。其中,时间对照表可以为时长和任务量级的对照表,不同的任务量级可以对应于不同的时长,例如,一百~二百的任务量级可以对应于10分钟,一万~两万的任务量级可以对应于5分钟。此外,上述的用户端可以为预先设置的用户端,用户端的数量可以为一个或多个,用户端可以为运营人员客户端,向用户端返回用于表示待处理任务异常的提示信息,可以有利于运营人员及时获知异常情况,进而进行人工干预。
170.可见,实施该可选的实施例,可以实现对于目标服务器的超时监测,可以理解的是,本技术不仅可以实现目标服务器对自身进行监测,还可以实现基于调度系统和管理系统的监测,提升了监测力度,可以实现对于服务器工作状态的及时更新,进而提升对于服务器资源的利用率。
171.作为一种可选的实施例,目标服务器,用于确定待处理任务对应的至少一个处理阶段以及各处理阶段对应的阶段处理时长;若检测到存在超出相应阶段处理时长的目标处理阶段,则退出执行进程,并向管理系统用于指示将目标服务器对应的工作状态更新为空闲状态的第三请求。
172.具体地,待处理任务可以对应于一个或多个处理阶段,其中,多个处理阶段之间可以存在执行顺序也可以不存在执行顺序,本技术实施例不作限定。不同的处理阶段可以对应于不同的阶段处理时长/相同的阶段处理时长,该阶段处理时长可以为预先设定的。
173.此外,向管理系统用于指示将目标服务器对应的工作状态更新为空闲状态的第三请求之后,上述方法还可以包括:管理系统将目标服务器对应的工作状态更新为空闲状态,并将目标服务器的空闲状态同步至调度系统。
174.可见,实施该可选的实施例,不仅可以实现目标服务器对自身进行监测,还可以实现基于调度系统和管理系统的监测,提升了监测力度,可以实现对于服务器工作状态的及时更新,进而提升对于服务器资源的利用率。
175.请参阅图3,图3示意性示出了根据本技术的又一个实施例的任务调度方法的流程图。如图3所示,任务调度方法包括:步骤s300~步骤s344。
176.步骤s300:管理系统在接收到针对新服务器的注册信息时,保存注册信息,并配置对应于新服务器的心跳时间阈值。
177.步骤s302:调度系统接收管理系统上报的特定服务器的新工作状态,根据新工作状态更新特定服务器当前的工作状态;其中,特定服务器为各服务器中的任一服务器。
178.步骤s304:调度系统在接收到待处理任务时,根据对应于待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识,并调度系统确定待处理任务对应的状态参数。若状态参数用于指示待处理任务为首次处理的任务,则执行步骤s306。若状态参数用于指示待处理任务非首次处理的任务,则执行步骤s308。
179.步骤s306:调度系统存储待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态。
180.步骤s308:调度系统将待处理任务对应的任务状态由已处理状态更新为未处理状态。
181.步骤s310:调度系统根据优先级标识将待处理任务添加至任务队列的第一特定位置中。
182.步骤s312:调度系统根据各服务器对应的工作状态确定处于空闲状态的空闲服务器。若空闲服务器的数量大于1,则执行s314。若空闲服务器的数量等于1,则执行步骤s340。
183.步骤s314:调度系统获取各空闲服务器对应的类型集合,得到多个类型集合。
184.步骤s316:调度系统确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的待选类型集合。若待选类型集合的数量大于1,则执行步骤s318。若待选类型集合的数量大于1,则执行步骤s320。
185.步骤s318:调度系统将待选类型集合确定为目标类型集合。
186.步骤s320:调度系统根据预设选取规则从待选类型集合中选取目标类型集合。
187.步骤s322:调度系统将待处理任务分配至目标类型集合对应的目标服务器,进而执行步骤s342和步骤s344。若分配成功,则执行步骤s324。若分配失败,则执行步骤s326。
188.步骤s324:调度系统根据预设时长对目标服务器进行超时监测;若监测到目标服务器对待处理任务的处理时长大于或等于预设时长,则向目标服务器获取对应于待处理任务的处理结果;若在预设获取次数内获取到处理结果,则将待处理任务对应的任务状态由未处理状态更新为已处理状态;若未在预设获取次数内获取到处理结果,则判定待处理任务异常,并向用户端返回用于表示待处理任务异常的提示信息。
189.步骤s326:调度系统向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第二请求,并根据优先级标识将待处理任务重新添加至任务队列中;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态。
190.步骤s328:调度系统接收目标服务器返回的对应于待处理任务的处理结果。若处理结果用于指示任务处理成功,则执行步骤s330。若处理结果用于指示任务处理失败,则执行步骤s332。
191.步骤s330:调度系统将待处理任务对应的任务状态由未处理状态更新为已处理状态,向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第一请求;其中,管
理系统用于将工作状态由忙碌状态更新为空闲状态。
192.步骤s332:调度系统确定待处理任务对应的任务失败次数。
193.步骤s334:若任务失败次数大于或等于预设次数,调度系统向管理系统发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,并向用户端返回用于表示待处理任务异常的提示信息;若任务失败次数小于预设次数,调度系统更新任务失败次数并根据优先级标识将待处理任务重新添加至任务队列的第二特定位置中。
194.步骤s336:当接收到掉线提示信息时,调度系统确定掉线提示信息对应的指定服务器;其中,指定服务器为各服务器中的任一服务器。
195.步骤s338:调度系统确定指定服务器对应的当前任务,并根据当前任务对应的特定优先级标识将当前任务增加至任务队列的第三特定位置中。
196.步骤s340:调度系统获取空闲服务器对应的空闲类型集合,并确定待处理任务对应的任务类型,若空闲类型集合包含任务类型,则将待处理任务分配至空闲类型集合对应的目标服务器,进而执行步骤s342和步骤s344。
197.步骤s342:目标服务器确定待处理任务对应的至少一个处理阶段以及各处理阶段对应的阶段处理时长;若检测到存在超出相应阶段处理时长的目标处理阶段,则退出执行进程,并向管理系统用于指示将目标服务器对应的工作状态更新为空闲状态的第三请求。
198.步骤s344:管理系统更新对应于目标服务器的心跳时间阈值,按照单位时长获取目标服务器的心跳信息,若心跳信息大于心跳时间阈值,则将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统。
199.需要说明的是,步骤s300~步骤s344与图2所示的各步骤及其实施例相对应,针对步骤s300~步骤s344的具体实施方式,请参阅图2所示的各步骤及其实施例,此处不再赘述。
200.此外,还需要说明的是,步骤s300~步骤s344在图3中的顺序仅为示例性示出,在实际应用中,本技术对于步骤s300~步骤s344中各步骤之间的执行顺序不作限定。
201.可见,在图3中,不同的服务器对应于与其相适应的类型集合,在接收到待处理任务时,可以基于待处理任务的任务类型匹配出与其相适应的类型集合,并将该待处理任务分配至该类型集合对应的服务器中,以解决只根据服务器忙闲程度调度任务造成的资源浪费问题,可以先确定出空闲服务器,再根据类型匹配的方式使得专门的服务器处理相应的任务,这样可以提升对于资源的资源利用率,避免资源浪费。此外,还可以提升服务器和任务之间的匹配度,避免将任务分配至不相关的服务器,也可以避免对同一服务器分配过多的任务,造成任务堆积过多从而导致的任务处理不及时的问题,有利于提升对于任务的处理效率。
202.请参阅图4,图4示意性示出了根据本技术的一个实施例的任务调度系统的结构示意图。如图4所示,任务调度系统包括:渲染任务调度平台410、外部平台420、用户端430、发起系统440、文件存储系统450、服务器集群460。其中,发起系统440包括:设计工具441、模型插件442。其中,服务器集群460包括:服务器461、
……
、服务器462、服务器463。其中,渲染任务调度平台410包括:消息中间件(rabbitmq)411、调度系统412、管理系统413、缓存(redis)414、数据库(mysql)415。其中,消息中间件(rabbitmq)411包括:任务信息4111、任务队列4112;缓存(redis)414包括:任务有序集合(zest)4141、任务的状态参数4142、心跳信息
4143、分布式锁(redisson)4144、工作状态4145;数据库(mysql)415包括:任务(task)4151、渲染函数(render_machine)4152、任务执行结果(task_result)4153。
203.具体地,用户可以基于发起系统440向调度系统412发起待处理任务;其中,用户可以基于设计工具441和模型插件442生成需要渲染的任务。用户也可以基于文件存储系统450存储需要渲染的任务相关的文件,文件的类型可以为任一类型(如,oss),本技术实施例不作限定。
204.此外,调度系统412可以根据服务器集群460中各服务器(即,服务器461、
……
、服务器462、服务器463)对应的工作状态确定处于空闲状态的空闲服务器,并获取各空闲服务器对应的类型集合,得到多个类型集合,进而,确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合,进而,向目标类型集合对应的目标服务器发送对应于待处理任务的任务处理指令,目标服务器可以基于任务处理指令中的任务位置从消息中间件(rabbitmq)411的任务队列4112中确定出待处理任务。此外,消息中间件(rabbitmq)411还可以包括任务信息4111,以记录需要处理的任务的信息。
205.其中,目标服务器还可以确定待处理任务对应的至少一个处理阶段以及各处理阶段对应的阶段处理时长;若检测到存在超出相应阶段处理时长的目标处理阶段,则退出执行进程,并向管理系统用于指示将目标服务器对应的工作状态更新为空闲状态的第三请求。
206.在上述处理过程中,管理系统413用于在接收到针对新服务器的注册信息时,保存注册信息,并配置对应于新服务器的心跳时间阈值并存储至缓存(redis)414中;更新对应于目标服务器的心跳时间阈值,按照单位时长获取目标服务器的心跳信息,若心跳信息大于心跳时间阈值,则将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统412。
207.此外,调度系统412还用于在接收到待处理任务时,根据对应于待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识,并调度系统412确定待处理任务对应的状态参数。若状态参数用于指示待处理任务为首次处理的任务,则存储待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态。若状态参数用于指示待处理任务非首次处理的任务,则将待处理任务对应的任务状态由已处理状态更新为未处理状态。根据优先级标识将待处理任务添加至任务队列4112的第一特定位置中。
208.以及,调度系统412可以将待处理任务分配至目标类型集合对应的目标服务器之后,若分配成功,则根据预设时长对目标服务器进行超时监测;若监测到目标服务器对待处理任务的处理时长大于或等于预设时长,则向目标服务器获取对应于待处理任务的处理结果;若在预设获取次数内获取到处理结果,则将待处理任务对应的任务状态由未处理状态更新为已处理状态;若未在预设获取次数内获取到处理结果,则判定待处理任务异常,并向用户端430返回用于表示待处理任务异常的提示信息。若分配失败,则向管理系统413发送用于指示将工作状态由忙碌状态更新为空闲状态的第二请求,并根据优先级标识将待处理任务重新添加至任务队列4112中;其中,管理系统413用于将工作状态由忙碌状态更新为空闲状态。
209.以及,调度系统412可以接收目标服务器返回的对应于待处理任务的处理结果。若
处理结果用于指示任务处理成功,将待处理任务对应的任务状态由未处理状态更新为已处理状态,向管理系统413发送用于指示将工作状态由忙碌状态更新为空闲状态的第一请求;其中,管理系统413用于将工作状态由忙碌状态更新为空闲状态。若处理结果用于指示任务处理失败,确定待处理任务对应的任务失败次数,若任务失败次数大于或等于预设次数,调度系统412向管理系统413发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,并向用户端430返回用于表示待处理任务异常的提示信息;若任务失败次数小于预设次数,调度系统412更新任务失败次数并根据优先级标识将待处理任务重新添加至任务队列4112的第二特定位置中。
210.此外,当接收到掉线提示信息时,调度系统412可以确定掉线提示信息对应的指定服务器,进而,确定指定服务器对应的当前任务,并根据当前任务对应的特定优先级标识将当前任务增加至任务队列4112的第三特定位置中。
211.此外,缓存(redis)414还用于存储任务有序集合(zest)4141,以记录需要处理的任务;缓存(redis)414还包含分布式锁(redisson)4144,以支持分布式的服务器集群460;缓存(redis)414还包含工作状态4145,以记录目标服务器的最新状态;缓存(redis)414还包含任务的状态参数,以记录任务的处理情况。
212.此外,数据库(mysql)415用于存储各个任务(task)4151,以及渲染函数(render_machine)4152、任务执行结果(task_result)4153,以便后续调用。
213.可见,在图4中,不同的服务器对应于与其相适应的类型集合,在接收到待处理任务时,可以基于待处理任务的任务类型匹配出与其相适应的类型集合,并将该待处理任务分配至该类型集合对应的服务器中,以解决只根据服务器忙闲程度调度任务造成的资源浪费问题,可以先确定出空闲服务器,再根据类型匹配的方式使得专门的服务器处理相应的任务,这样可以提升对于资源的资源利用率,避免资源浪费。此外,还可以提升服务器和任务之间的匹配度,避免将任务分配至不相关的服务器,也可以避免对同一服务器分配过多的任务,造成任务堆积过多从而导致的任务处理不及时的问题,有利于提升对于任务的处理效率。
214.进一步的,本示例实施方式中,还提供了一种任务调度装置。参考图5所示,该任务调度装置500可以包括:服务器确定单元501、类型确定单元502、任务调配单元503,其中:
215.服务器确定单元501,用于根据各服务器对应的工作状态确定处于空闲状态的空闲服务器;
216.类型确定单元502,用于若空闲服务器的数量大于1,则获取各空闲服务器对应的类型集合,得到多个类型集合;
217.类型确定单元502,还用于确定待处理任务对应的任务类型,并从多个类型集合中确定包含任务类型的目标类型集合;
218.任务调配单元503,用于将待处理任务分配至目标类型集合对应的目标服务器。
219.可见,在图5中,不同的服务器对应于与其相适应的类型集合,在接收到待处理任务时,可以基于待处理任务的任务类型匹配出与其相适应的类型集合,并将该待处理任务分配至该类型集合对应的服务器中,以解决只根据服务器忙闲程度调度任务造成的资源浪费问题,可以先确定出空闲服务器,再根据类型匹配的方式使得专门的服务器处理相应的任务,这样可以提升对于资源的资源利用率,避免资源浪费。此外,还可以提升服务器和任
务之间的匹配度,避免将任务分配至不相关的服务器,也可以避免对同一服务器分配过多的任务,造成任务堆积过多从而导致的任务处理不及时的问题,有利于提升对于任务的处理效率。
220.在本技术的一种示例性实施例中,若空闲服务器的数量等于1,上述装置还包括:
221.类型集合获取单元,用于获取空闲服务器对应的空闲类型集合;
222.服务器确定单元501,还用于确定待处理任务对应的任务类型,若空闲类型集合包含任务类型,则将待处理任务分配至空闲类型集合对应的目标服务器。
223.可见,实施该可选的实施例,可以公开空闲服务器的数量为一个或多个时的不同调度方式,使得本技术可以应对更多样的应用场景,提升本技术技术方案的鲁棒性。
224.在本技术的一种示例性实施例中,类型确定单元502从多个类型集合中确定包含任务类型的目标类型集合,包括:
225.从多个类型集合中确定包含任务类型的待选类型集合;
226.若待选类型集合的数量等于1,则将待选类型集合确定为目标类型集合;
227.若待选类型集合的数量大于1,则根据预设选取规则从待选类型集合中选取目标类型集合。
228.可见,实施该可选的实施例,可以在待选类型集合的数量为一个或多个时,确定相应的目标类型集合,以将待处理任务分配至目标类型集合对应的目标服务器,有利于提升对于服务器资源的利用率。
229.在本技术的一种示例性实施例中,上述装置还包括:
230.工作状态更新单元,用于在服务器确定单元501根据各服务器对应的工作状态确定处于空闲状态的空闲服务器之前,接收管理系统上报的特定服务器的新工作状态,根据新工作状态更新特定服务器当前的工作状态;其中,特定服务器为各服务器中的任一服务器。
231.可见,实施该可选的实施例,可以接收管理系统及时上报的服务器的工作状态,从而可以在接收到待处理任务时,及时确定出准确的空闲服务器,有利于提升对于任务的调度效率,进而有利于提升任务处理效率。
232.在本技术的一种示例性实施例中,上述装置还包括:
233.优先级标识确定单元,用于在接收到待处理任务时,根据对应于待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识;
234.任务添加单元,用于根据优先级标识将待处理任务添加至任务队列的第一特定位置中。
235.可见,实施该可选的实施例,可以根据待处理任务的任务接收时间以及待处理任务的预设优先级生成对应于待处理任务的优先级标识,再基于该优先级标识将待处理任务添加至任务队列中,实现对于优先级标识的个性化设定,从而实现对于待处理任务优先级的精准判定。
236.在本技术的一种示例性实施例中,上述装置还包括:
237.参数确定单元,用于在任务添加单元根据优先级标识将待处理任务添加至任务队列的第一特定位置中之前,确定待处理任务对应的状态参数;
238.信息存储单元,用于在状态参数用于指示待处理任务为首次处理的任务时,存储
待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态;
239.处理状态更新单元,用于在状态参数用于指示待处理任务非首次处理的任务时,将待处理任务对应的任务状态由已处理状态更新为未处理状态。
240.可见,实施该可选的实施例,可以基于状态参数区分任务是否为首次处理的任务,从而实现对于待处理任务对应的任务信息以及表征待处理任务处于未处理状态的任务状态的存储,或是将待处理任务对应的任务状态由已处理状态更新为未处理状态,从而可以实现对于任务的处理周期的准确记录,避免对任务误处理。
241.在本技术的一种示例性实施例中,上述装置还包括:
242.请求发送单元,用于在任务调配单元503将待处理任务分配至目标类型集合对应的目标服务器之后,若分配成功,则接收目标服务器返回的对应于待处理任务的处理结果,并向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第一请求;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态;
243.请求发送单元,还用于若分配失败,则向管理系统发送用于指示将工作状态由忙碌状态更新为空闲状态的第二请求,并根据优先级标识将待处理任务重新添加至任务队列中;其中,管理系统用于将工作状态由忙碌状态更新为空闲状态。
244.可见,实施该可选的实施例,根据任务分配情况及时更新服务器的工作状态,以便提升对于服务器资源的利用率。
245.在本技术的一种示例性实施例中,管理系统,还用于在将工作状态由忙碌状态更新为空闲状态之后,更新对应于目标服务器的心跳时间阈值;
246.管理系统,还用于按照单位时长获取目标服务器的心跳信息,若心跳信息大于心跳时间阈值,则将工作状态由忙碌状态更新为异常状态,并将目标服务器对应的异常状态同步至调度系统。
247.可见,实施该可选的实施例,可以通过管理系统实现对于服务器的监控,以基于对心跳信息和心跳时间阈值的比对及时发现出现异常的服务器,并及时更新该服务器的工作状态,避免任务不能被及时处理,从而提升对于任务的处理效率。
248.在本技术的一种示例性实施例中,管理系统,还用于在接收到针对新服务器的注册信息时,保存注册信息,并配置对应于新服务器的心跳时间阈值。
249.可见,实施该可选的实施例,可以通过注册信息新增新服务器,实现服务器的水平扩展,方便相关人员基于需求进行实时的增减,以应对不同量级的任务。
250.在本技术的一种示例性实施例中,上述装置还包括:
251.处理状态更新单元,还用于在任务调配单元503将所述待处理任务分配至所述目标类型集合对应的目标服务器之后,接收所述目标服务器返回的对应于所述待处理任务的处理结果;若所述处理结果用于指示任务处理成功,则将所述待处理任务对应的任务状态由所述未处理状态更新为已处理状态。
252.可见,实施该可选的实施例,可以在任务处理成功的情况下,及时更新任务的处理状态,避免任务被再次分配。
253.在本技术的一种示例性实施例中,上述装置还包括:
254.失败次数确定单元,用于在处理状态更新单元接收目标服务器返回的对应于待处理任务的处理结果之后,若处理结果用于指示任务处理失败,则确定待处理任务对应的任
务失败次数;
255.消息提醒单元,用于任务失败次数大于或等于预设次数时,向管理系统发送用于指示将目标服务器的工作状态由忙碌状态更新为异常状态的提示信息,并向用户端返回用于表示待处理任务异常的提示信息;
256.任务添加单元,还用于在任务失败次数小于预设次数时,更新任务失败次数并根据优先级标识将待处理任务重新添加至任务队列的第二特定位置中。
257.可见,实施该可选的实施例,可以在任务失败时自动进行补偿重试,提高渲染任务成功率及自动化程度。
258.在本技术的一种示例性实施例中,其中:
259.服务器确定单元501,还用于当接收到掉线提示信息时,确定掉线提示信息对应的指定服务器;其中,指定服务器为各服务器中的任一服务器;
260.任务添加单元,还用于确定指定服务器对应的当前任务,并根据当前任务对应的特定优先级标识将当前任务增加至任务队列的第三特定位置中。
261.可见,实施该可选的实施例,可以在任务处理失败时,将服务器未处理完的任务重新添加至任务队列中,避免对任务漏处理,同时也可以通过对于任务的及时添加,提升对于任务处理效率。
262.在本技术的一种示例性实施例中,上述装置还包括:
263.超时监测单元,用于根据预设时长对目标服务器进行超时监测;若监测到目标服务器对待处理任务的处理时长大于或等于预设时长,则向目标服务器获取对应于待处理任务的处理结果;若在预设获取次数内获取到处理结果,则将待处理任务对应的任务状态由未处理状态更新为已处理状态;若未在预设获取次数内获取到处理结果,则判定待处理任务异常,并向用户端返回用于表示待处理任务异常的提示信息。
264.可见,实施该可选的实施例,可以实现对于目标服务器的超时监测,可以理解的是,本技术不仅可以实现目标服务器对自身进行监测,还可以实现基于调度系统和管理系统的监测,提升了监测力度,可以实现对于服务器工作状态的及时更新,进而提升对于服务器资源的利用率。
265.在本技术的一种示例性实施例中,目标服务器,用于确定待处理任务对应的至少一个处理阶段以及各处理阶段对应的阶段处理时长;若检测到存在超出相应阶段处理时长的目标处理阶段,则退出执行进程,并向管理系统用于指示将目标服务器对应的工作状态更新为空闲状态的第三请求。
266.可见,实施该可选的实施例,不仅可以实现目标服务器对自身进行监测,还可以实现基于调度系统和管理系统的监测,提升了监测力度,可以实现对于服务器工作状态的及时更新,进而提升对于服务器资源的利用率。
267.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
268.由于本技术的示例实施例的任务调度装置的各个功能模块与上述任务调度方法的示例实施例的步骤对应,因此对于本技术装置实施例中未披露的细节,请参照本技术上
述的任务调度方法的实施例。
269.请参阅图6,图6示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
270.需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
271.如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从储存部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有系统操作所需的各种程序和数据。cpu 601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
272.以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的储存部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入储存部分608。
273.特别地,根据本技术的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本技术的方法和装置中限定的各种功能。
274.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
275.需要说明的是,本技术所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的
程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
276.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
277.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
278.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
279.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

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

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

相关文献