1.本技术涉及数据处理领域,尤其涉及一种任务调度方法、装置、服务器及存储介质。
背景技术:2.随着计算机技术的快速发展,各种业务数据量也在不断激增,对于大批量数据的处理,通常可以采用分布式进行任务处理。而对于不要求实时处理,或任务数量较大,或处理逻辑时间较长的任务则可以采用异步调度的方式进行任务处理。然而,目前业内对于实现任务的异步调度方案通常是采用定时的启动调度单元进行任务的调度,任务调度的灵活性较差。
技术实现要素:3.本技术实施例提供了一种任务调度方法、装置、服务器及存储介质,可以提供一个供用户触发任务调度的任务操作界面,以通过任务操作界面所发出的触发指令的情况下触发任务调度的执行,从而可以提高触发任务调度的灵活性。
4.第一方面,本技术实施例公开了一种任务调度方法,所述方法包括:
5.当在任务操作界面上检测到与触发任务相关联的触发指令时,基于所述触发指令确定目标任务集合,所述目标任务集合包括多个目标任务;
6.对所述目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合,每个子任务集合包括一个或多个目标任务;
7.按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据所述各个执行设备的执行情况确定各自的任务状态;
8.获取所述各个执行设备的任务状态,当检测到所述设备集群中存在异常的异常执行设备时,根据所述任务状态从所述设备集群中选择目标执行设备,并将所述异常执行设备对应的子任务集合推送给所述目标执行设备。
9.第二方面,本技术实施例公开了一种任务调度装置,所述装置包括:
10.检测单元,用于当在任务操作界面上检测到与触发任务相关联的触发指令时,基于所述触发指令确定目标任务集合,所述目标任务集合包括多个目标任务;
11.确定单元,用于对所述目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合,每个子任务集合包括一个或多个目标任务;
12.推送单元,用于按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据所述各个执行设备的执行情况确定各自的任务状态;
13.选择单元,用于获取所述各个执行设备的任务状态,当检测到所述设备集群中存在异常的异常执行设备时,根据所述任务状态从所述设备集群中选择目标执行设备;
14.所述推送单元,还用于将所述异常执行设备对应的子任务集合推送给所述目标执行设备。
15.第三方面,本技术实施例公开了一种服务器,包括处理器、存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
16.第四方面,本技术实施例公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
17.本技术实施例中,当在任务操作界面上检测到与触发任务相关联的触发指令时,服务器可以基于触发指令确定包括多个目标任务的目标任务集合,并对目标任务集合中的各个目标任务进行分片处理,以得到多个子任务集合。然后按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据各个执行设备的执行情况确定各自的任务状态。服务器还可以获取各个执行设备的任务状态,而当检测到设备集群中存在异常的异常执行设备时,可以根据任务状态从所述设备集群中选择目标执行设备,并将异常执行设备对应的子任务集合推送给目标执行设备。通过实施上述方法,可以提供一个供用户触发任务调度的任务操作界面,以通过任务操作界面所发出的触发指令的情况下触发任务调度的执行,从而可以提高触发任务调度的灵活性;在对任务的分片处理完成之后,可以将每一个分片包装成一个具体的调度单元,然后分发给具体的执行设备,以使各个执行设备执行对应的任务;同时,各个任务执行设备在执行对应的任务时,还可以向服务器发送用于指示任务执行情况的任务状态,以使服务器可以监控各个任务执行设备的任务状态,并可以根据任务状态实现任务执行异常后的调度转移,从而提高任务处理的可靠性以及效率。
附图说明
18.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本技术实施例提供的一种任务调度系统的流程示意图;
20.图2是本技术实施例提供的一种任务调度方法的流程示意图;
21.图3是本技术实施例提供的一种确定目标任务集合的结构示意图;
22.图4是本技术实施例提供的一种任务调度方法的流程示意图;
23.图5是本技术实施例提供的一种任务调度装置的结构示意图;
24.图6是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
25.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.请参阅图1,图1是本技术实施例提供的一种任务调度系统的架构示意图。本技术涉及终端101和服务器102和设备集群,其中设备集群中包括多个执行设备103。
27.以终端101为例,终端101可以接收用户在任务操作界面上发起的与触发任务相关联的触发指令,并将该触发指令发送至服务器102。服务器102可以基于该触发指令确定包括多个目标任务的目标任务集合,并对目标任务集合中的各个目标任务进行分片处理,以得到多个子任务集合;服务器102还可以将各个子任务集合推送给设备集群中所包括的多个执行设备103,以使各个执行设备103执行所接收到的子任务集合中的目标任务,并根据各个执行设备的执行情况确定各自的任务状态。
28.后续,服务器102可以获取各个执行设备103的任务状态,当检测到设备集群中存在异常的异常执行设备时,可以根据任务状态从设备集群中选择目标执行设备,并将异常执行设备对应的子任务集合推送给目标执行设备。
29.图1所示的终端101可以是智能手机、平板电脑、笔记本电脑、台式电脑等设备,还可以是例如手柄、触摸屏等外设设备;服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。执行设备103可以是终端,也可以是服务器。终端101与服务器102可以通过有线或无线通信方式进行直接或间接地连接,服务器102和执行设备103也可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
30.以下对本技术实施例的技术方案的实现细节进行详细阐述:
31.请参见图2,图2是本技术实施例提供的一种任务调度方法的流程示意图,该任务调度方法可由上述所提及的服务器执行;该任务调度方法包括以下步骤:
32.s201:当在任务操作界面上检测到与触发任务相关联的触发指令时,基于触发指令确定目标任务集合。
33.在一种实现方式中,用户所使用的终端屏幕上可以输出一个任务操作界面,用户可以在该任务操作界面上执行相关操作,以实现对任务的处理。其中,在本技术中的目标任务可以是任务库中的任务,即预先上传的任务;也可以是即时上传的任务,即在执行任务调度方法时上传需要被处理的任务。目标任务可以是各种类型的任务,如贷款催收任务、保险推销任务、信息录入任务等等。而所处理的任务可以是同一类型的任务,也可以是不同类型的任务,在本技术不做限定。
34.在一种实现方式中,当在任务操作界面上检测到与触发任务相关联的触发指令时,即可以基于触发指令确定包括多个目标任务的目标任务集合,以便于后续可以实现对多个目标任务的分片、调度等操作。可选的,该触发指令可以用于触发任务调度方法的执行,该触发指令还可以携带有任务触发信息,以便于可以基于该携带的任务触发信息确定对应的目标任务集合。其中,该任务触发信息可以包括任务触发属性,任务触发属性可以基于用户在任务操作界面上的相关操作所得到。
35.例如,参见图3所示,该任务操作界面上可以包括任务触发设置区域31和确认控件32,其中任务触发设置区域31中可以包括一个或多个任务触发设置项,该任务触发设置项可以用于供用户输入与任务的任务属性相关的信息。如任务触发属性设置项可以包括任务
类型设置项、任务时间设置项、任务地区设置项等等,用户可以在该一个或多个任务触发设置项中输入对应的信息,如在任务类型设置项中输入贷款催收,在任务时间设置项中输入2020.1.1-2020.12.30,然后对确认控件32进行触发操作(如点击、按压操作)。而当终端检测到确认控件32被触发时,终端可以生成一个触发指令,并可以获取用户在任务触发设置项中的输入信息,并将该输入信息携带在触发指令中,该输入信息即是上述描述的任务触发信息,一个任务触发设置项对应的输入信息即是一个任务触发属性。进而终端可以将携带有任务触发信息的触发指令发送给服务器。
36.那么,在服务器获取到该触发指令之后,可以将携带在触发指令的任务触发属性与待处理任务集合中每个待处理任务的任务属性进行匹配。其中,待处理任务集合中的各个待处理任务可以理解为上述描述的任务库中的任务。针对待处理任务集合中的任一待处理任务,如果任务触发属性包含于任一待处理任务的任务属性,则可以将该任一待处理任务确定为目标任务。
37.例如,假设任务触发属性有3个,如果该3个任务触发属性均存在一个待处理任务中的所有任务属性中,则可以将该待处理任务确定为目标任务。假设用户在任务类型设置项中输入的是贷款催收,在任务时间设置项中输入的是2020.1.1-2020.12.30,即任务触发属性包括贷款催收(任务类型)以及2020.1.1-2020.12.30(任务时间),那么,可以从待处理任务集合中筛选出任务类型为贷款催收以及任务时间为2020.1.1-2020.12.30间的待处理任务,筛选出的待处理任务即是目标任务。
38.s202:对目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合。
39.在一种实现方式中,可以获取目标任务集合中各个目标任务的任务属性,以基于任务属性对目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合。其中,每个子任务集合中可以包括一个或多个目标任务;任务属性可以包括任务类型、任务时间、任务数据量、任务处理地区等等。
40.可选的,假设任务属性包括任务处理地区,则可以是基于任务处理地区进行分片处理,如可以是将处于同一个任务处理地区的目标任务划分为一个分片(一个分片可以理解为一个子任务集合),其中,同一任务处理地区可以是指同一城市、或同一街道、或同一小区等,其具体定义可以基于实际情况确定。例如,针对贷款催收类的催收任务,假设催收任务对应的任务处理地区分散在各个城市,则可以将同一城市的催收任务划分为一个分片。又假设催收任务对应的任务处理地区处于同一城市,但分散在不同的街道,则可以将同一街道的催收任务划分为一个分片。
41.可选的,假设任务属性包括任务时间,则可以是基于任务时间进行分片处理,如可以是将处于位于同一时间段内的目标任务划分为一个分片。具体实现中,可以预先定义多个时间段,将每一个时间段内对应的目标任务划分为一个分片,即可以确定每个目标任务的任务时间所处的时间段,以根据所处时间段来确定对应的分片。具体实现中,可以获取每个目标任务的任务时间,再从所有的任务时间中确定最晚任务时间,然后基于当前时间(或最早任务时间)和最晚任务时间划分多个时间段。例如,针对贷款催收类的催收任务,任务时间可以是催收截止时间,其中,最晚催收截止时间为2020.10.10,当前时间为2020.2.2,则可以基于2020.2.2和2020.10.10划分多个时间段。进一步的,确定每个目标任务对应的所处时间段,以将多个目标任务划分为多个子任务集合。
42.可选的,假设任务属性包括任务数据量,则可以是基于任务数据量进行分片处理,如可以基于任务数据量进行均分处理,即保证每个分片对应的任务数据量是相同的。
43.可选的,可以基于一个任务属性进行分片处理,也可以基于多个任务属性进行分片处理,在本技术不作限定。如可以基于任务类型和任务处理地区多多个目标任务进行分片处理。具体实现中,可以先确定每个目标任务的任务类型以及任务处理地区,先根据任务类型对多个目标任务进行分片处理,以得到第一子任务集合,其中,任一第一子任务集合中目标任务的任务类型相同。然后,基于任务处理地区对每个第一子任务集合再次进行分片处理,以得到多个子任务集合。
44.s203:按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据各个执行设备的执行情况确定各自的任务状态。
45.在一种实现方式中,可以将每个子任务集合中所包括的目标任务推送给对应的执行设备,以使执行设备可以执行对应的目标任务,例如,执行设备可以按照一个目标任务所指示的数据处理方式对该目标任务所指示的待处理数据进行数据处理。假设目标任务所指示的待处理数据是一百万车险保单,处理方式是对该一百万车险保单的用户信息进行记录,那么在执行设备获取到目标任务之后,就可以对目标任务中指示的待处理数据,即一百万车险保单中的用户信息进行数据处理,即对一百万车险保单的用户信息进行记录。
46.在一种实现方式中,在将目标任务集合划分为多个子任务集合之后,可以按照预设推送规则将各个子任务集合推送给执行设备,以使执行设备可以执行对应的目标任务。其中,预设推送规则具体可以为如下阐述,例如,可以基于设备集群中执行设备的设备数量和子任务集合的数量来分为不同的情况以进行任务的推送。假设设备集群中执行设备的设备数量为m,子任务集合的数量为n。当m和n的小大关系不确定时,对应的推送方式可以不一样。
47.当n(子任务集合的数量)小于或等于m(设备数量)时,为了快速完成任务,可以将每一个子任务集合推送给一个执行设备,即保证一个执行设备执行一个子任务集合中的所有目标任务。那么,可以从设备集群中为各个子任务集合选择一个执行设备,并将各个子任务集合推送给对应的执行设备,即每个子任务集合对应的执行设备是不同的。
48.在一种实现方式中,上述在为每一个子任务集合选择一个执行设备时,可以基于子任务集合的任务总数据量和执行设备的空闲负载量来进行推送。其中,在推送的过程中,可以尽可能保证每一个执行设备的空闲负载量大于或等于对应子任务集合的任务总数据量,以保证执行设备的执行效率。具体实现中,可以先确定每一个子任务集合的任务总数据量和每一个执行设备的空闲负载量。然后,将子任务集合按照任务总数据量从大到小的顺序进行排序,得到针对子任务集合的第一排序结果,并将执行设备按照空闲负载量从大到小的顺序进行排序,得到针对执行设备的第二排序结果。再根据子任务集合的第一排序结果和执行设备的第二排序结果进行子任务集合的推送。
49.假设子任务集合的数量等于执行设备的设备数量,则可以按照子任务集合的第一排序结果对应的顺序和执行设备的第二排序结果对应的顺序,将子任务集合和执行设备一一对应,即可以将第一排序结果中位于第一位的子任务集合推送给第二排序结果中位于第一位的执行设备,将第一排序结果中位于第二位的子任务集合推送给第二排序结果中位于
第二位的执行设备,依次类推,则可以为每一个子任务集合选择一个执行设备。而在子任务集合的数量小于执行设备的设备数量的情况下,同样可以按照上述方式进行推送。后续所提及的在将m个子任务集合中的每个子任务集合推送给设备集群中的一个执行设备是也可以按照上述方式进行推送。
50.当n(子任务集合的数量)大于m(设备数量)时,可以先从多个子任务集合中选择m个子任务集合,将m个子任务集合中的每个子任务集合推送给设备集群中的一个执行设备。然后,在获取到执行设备的任务状态为目标任务状态时,将n-m个子任务集合中的一个子任务集合推送给任务状态为目标任务状态的执行设备。
51.在一种实现方式中,上述在从多个子任务集合中选择m个子任务集合时,可以结合相关特征来进行选择,例如,可以基于子任务集合的紧急程度、子任务集合的任务总数据量、执行设备的空闲负载量等特征来进行选择。其中,针对一个子任务集合,该子任务集合的任务总数据量可以是指该子任务集合所包括的各个目标任务对应的任务数据量之和。
52.可选的,以子任务集合的紧急程度为例进行说明,紧急程度可以基于任务时间来确定。具体实现中,假设每一个目标任务对应的任务属性中包括任务时间,则可以获取各个子任务集合对应的参考任务时间,其中,任一参考任务时间可以包括:任一子任务集合的所有目标任务对应的任务时间中最早任务时间或最晚任务时间。在确定每个子任务集合对应的参考任务时间之后,再基于该参考任务时间从n个子任务集合中确定出m个子任务集合,例如,可以按照参考任务时间从大到小的顺序依次对多个子任务集合进行排序,以得到任务集合排序结果。进一步的,可以从任务集合排序结果中选择位于前m位的子任务集合,该m个子任务集合即是当前多个子任务集合中较为紧急的子任务集合,对于这些子任务集合,可以优先处理。
53.在一种实现方式中,在将各个子任务集合中的目标任务发送给对应的执行设备之前,还可以检测设备集群中是否存在发生异常的执行设备。如果检测到存在异常的执行设备,则可以将这些异常的执行设备从所述设备集群中过滤,即不需要利用该异常的执行设备进行数据处理,其中异常的执行设备的确定可以参考步骤s204中的相关描述。
54.在一种实现方式中,执行设备在执行对应的子任务集合中的目标任务时,可以基于自身任务的执行情况确定对应的任务状态,并将任务状态发送给服务器。可选的,执行设备在执行完一个子任务集合中的所有目标任务时,即可以向服务器发送任务状态,该任务状态可以用于指示任务已完成。可选的,执行设备在执行一个子任务集合中的所有目标任务时,可以定时向服务器发送任务状态,该任务状态可以包括:用于指示任务进行中或用于指示任务已完成。其中,定时发送任务状态具体可以是按照预设的发送时间间隔来发送任务状态,例如,预设的发送时间间隔可以是5秒,或7秒等等,其具体数值在本技术不作限定。
55.s204:获取各个执行设备的任务状态,当检测到设备集群中存在异常的异常执行设备时,根据任务状态从所述设备集群中选择目标执行设备,并将异常执行设备对应的子任务集合推送给目标执行设备。
56.在一种实现方式中,服务器可以接收各个执行设备所发送的任务状态,以通过任务状态监控各个执行设备的任务执行情况,有利于后续实现任务执行异常后的调度转移,也有利于剩余子任务集合的任务调度,剩余子任务集合可以是指在子任务集合的数量大于执行设备的设备数量时,经过一次任务调度之后剩余的子任务集合。
57.在一种实现方式中,在执行设备执行相应的目标任务时,服务器也可以实时监测设备集群中是否存在发生异常的执行设备,以避免这些异常的执行设备因不能正常的处理目标任务而影响任务的执行。具体实现中,以设备集群中的任一执行设备为例进行说明,针对设备集群中任一执行设备,可以按照预设时间间隔向该任一执行设备发送信号探测请求,以请求该任一执行设备返回目标数据。其中,该预设时间间隔可以预先设置,如该预设时间间隔可以是1秒,或3秒等数值。在服务器发送信号探测请求之后,可以进一步确定是否可以在预设时间段内接收到该任一执行设备发送的目标数据。该预设时间段也可以预先设置,如可以是2秒,或4秒等数值,该预设时间段可以基于执行设备的历史响应时间段来确定,响应时间段可以理解为:服务器发送请求的时间与服务器接收响应数据(响应该请求所得到的数据)的时间之间的差值,历史响应时间段可以理解为当前时间之前所涉及到的响应时间段。如可以获取多个历史响应时间段,并将该多个历史响应时间段的均值作为预设时间段;又如可以将获取到的任一历史响应时间段作为预设时间段。如果服务器可以在预设时间段内接收到该目标数据,则表明该执行设备是正常的;如果服务器在预设时间段内未接收到该目标数据,则表明该任一执行设备是异常的,即可以将该任一执行设备确定为异常执行设备。在本技术中,可以将发生异常的执行设备称之为异常执行设备。
58.在一种实现方式中,在确定设备集群中存在异常执行设备之后,即需要将该异常执行设备对应的子任务集合推送给其他正常的执行设备,以保证目标任务的正常执行。那么,可以先从其他执行设备中选择一个正常的执行设备,可以将该执行设备称之为目标执行设备。需要说明的是,设备集群中可能存在一个或多个异常执行设备,本技术主要以一个异常执行设备为例进行说明。其中,因存在一个异常执行设备而选择一个目标执行设备的具体实施方式可以是基于各个执行设备的任务状态从设备集群中选择目标执行设备。例如,可以从设备集群中确定任务状态为目标任务状态的执行设备,以根据处于目标任务状态的执行设备确定目标执行设备,其中,该目标任务状态可以是指用于指示任务已完成的任务状态。如果处于目标任务状态的执行设备的数量为一个,则可以将该执行设备确定为目标执行设备,如果处于目标任务状态的执行设备的数量为多个,可以从该多个执行设备中随机选择一个执行设备确定为目标执行设备。
59.本技术实施例中,当在任务操作界面上检测到与触发任务相关联的触发指令时,服务器可以基于触发指令确定包括多个目标任务的目标任务集合,并对目标任务集合中的各个目标任务进行分片处理,以得到多个子任务集合。然后按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据各个执行设备的执行情况确定各自的任务状态。服务器还可以获取各个执行设备的任务状态,而当检测到设备集群中存在异常的异常执行设备时,可以根据任务状态从所述设备集群中选择目标执行设备,并将异常执行设备对应的子任务集合推送给目标执行设备。通过实施上述方法,可以提供一个供用户触发任务调度的任务操作界面,以通过任务操作界面所发出的触发指令的情况下触发任务调度的执行,从而可以基于用户需求实现任务调度的灵活触发;在对任务的分片处理完成之后,可以将每一个分片包装成一个具体的调度单元,然后分发给具体的执行设备,以使各个执行设备执行对应的任务;同时,各个任务执行设备在执行对应的任务时,还可以向服务器发送用于指示任务执行情况的任务状态,以使服务器可以监控各个任务执行设备的任务状态,并可以根据任
务状态实现任务执行异常后的调度转移,从而提高任务处理的可靠性以及效率。
60.请参见图4,图4是本技术实施例提供的一种任务调度方法的流程示意图,该任务调度方法可由上述所提及的服务器执行,该任务调度方法包括以下步骤:
61.s401:当在任务操作界面上检测到与触发任务相关联的触发指令时,基于触发指令确定目标任务集合。
62.在一种实现方式中,用户所使用的终端屏幕上可以输出一个任务操作界面,用户可以通过在该任务触发界面执行相关操作,以使终端检测到与触发任务相关联的触发指令,并将该触发指令发送给服务器。例如,该任务操作界面可以包括一个任务触发控件,当用户对该任务触发控件执行触发操作(如点击、按压操作)时,终端即可以检测到与触发任务相关联的触发指令。其中,该触发指令可以关联有需要进行任务调度的任务,该任务可以是上述描述的待处理任务集合中的待处理任务。那么,服务器可以基于该触发指令确定目标任务集合,该目标任务集合中的目标任务即是需要进行任务调度的任务。
63.在一种实现方式中,触发指令所关联的需要进行任务调度的任务可以预先进行预测,当预测完成之后,可以向用户所使用的终端发送提醒信息,该提醒信息可以用于指示用户在任务触发界面执行相关操作,以使得当前被预测的任务可以进行任务调度操作。其中,该预测任务可以是定时设置的,如可以在每天早上9点自动启动预测任务,以确定每天需要被执行的任务。该预测任务也可以是用户触发的。
64.在一种实现方式中,预测任务的具体实施方式可以为:服务器可以获取待处理任务集合中各个待处理任务的任务属性,并调用预训练的任务识别模型对任务属性进行识别处理,以得到每个待处理任务的识别结果。其中,任务属性可以参考上述描述;识别结果可以包括用于指示待处理任务是否需要被调度;该任务识别模型可以可用于进行识别的机器学习模型,例如,该任务识别模型可以是决策树(decision tree,dt)模型、支持向量机(support vector machine,svm)模型、随机森林(random forest,rf)模型、逻辑回归(logistic regression,lr)模型等等。也可以包括其他可用于识别的机器学习模型,在申请中对具体模型不做限定。可选的,在利用任务识别模型进行识别处理之前,可以先对该任务识别模型进行训练,其中,针对训练的训练样本集可以包括多个训练样本,每一个训练样本可以包括一个任务的任务属性以及该任务对应的训练识别结果,该训练识别结果可以人工标注,或利用其他方式标注。
65.那么,在基于任务识别模型确定每个待处理任务的识别结果之后,可以进一步确定待处理任务集合中识别结果为目标识别结果的待处理任务,该目标识别结果可以是用于指示待处理任务需要被调度。则在确定识别结果为目标识别结果的待处理任务后,可以生成与触发任务相关联的触发指令,该触发指令可以关联识别结果为目标识别结果的待处理任务。而在该触发指令生成之后,还可以进一步基于用户在任务触发界面上执行相关操作,使得该触发指令被触发(或理解为被唤醒)。例如,可以通过上述描述的任务触发界面上的任务触发控件来触发。可选的,当预测任务未完成时(即还未确定待处理任务集合中识别结果为目标识别结果的待处理任务时),任务触发控件可以处于第一状态,当预测任务完成时(即已确定待处理任务集合中识别结果为目标识别结果的待处理任务时),任务触发控件可以处于第二状态。其中,第一状态可以是不可触发状态,即该任务触发控件不能被执行触发操作,如用户不能点击该任务触发控件;第二状态可以是可触发状态,即该任务触发控件可
以被执行触发操作,如用户可以点击该任务触发控件。那么,在该任务触发控件处于第二状态时,用户则可以触发该任务触发控件,以使得服务器可以接收到终端发送的与触发任务相关联的触发指令,并进一步基于该触发指令确定目标任务集合。
66.通过上述方法可知,可以预先对待处理任务集合中的多个待处理任务进行任务触发预测,以从待处理任务集合中确定需要进行任务调度的待处理任务,即目标任务,从而可以实现任务触发的智能化。相比于上述描述的用户在任务操作界面上设置相关信息,也可以简化用户在任务操作界面上的相关操作,如用户只需在任务操作界面上对触发任务的任务触发控件进行触发操作即可,进而可以提高任务处理速度,也可以提高用户体验。
67.s402:对目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合。
68.s403:按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据各个执行设备的执行情况确定各自的任务状态。
69.s404:获取各个执行设备的任务状态,当检测到设备集群中存在异常的异常执行设备时,从设备集群中确定任务状态为目标任务状态的初始执行设备,得到初始执行设备集合。
70.s405:分别获取各个初始执行设备的空闲负载量,根据空闲负载量从初始执行设备集合中确定目标执行设备,并将异常执行设备对应的子任务集合推送给目标执行设备。
71.在步骤s404和s405中,当检测到设备集群中存在异常的异常执行设备时,可以基于多个维度的特征从多个执行设备中选择目标执行设备,例如,可以基于任务状态和空闲负载量两个维度进行目标执行设备的选择,其具体实现方式可以为如下描述。
72.在一个实施例中,可以从设备集群中确定任务状态为目标任务状态的执行设备,可以将处于目标任务状态的执行设备称之为初始执行设备,从而可以得到初始执行设备集合,该初始执行设备集合可以包括一个或多个初始执行设备。如果初始执行设备集合包括一个初始执行设备,则可以将该初始执行设备确定为目标执行设备。如果初始执行设备集合包括多个初始执行设备,则可以执行下述操作:可以分别获取各个初始执行设备的空闲负载量,以根据空闲负载量从初始执行设备集合中确定目标执行设备。例如,可以确定异常执行设备对应的子任务集合的任务总数据量,然后,从初始执行设备集合中确定空闲负载量大于或等于任务总数据量的候选执行设备,以得到候选执行设备集合,该候选执行设备集合可以包括一个或多个候选执行设备。那么,可以从该候选执行设备集合中选择目标执行设备。其中,如果候选执行设备集合包括一个候选执行设备,则可以将该候选执行设备确定为目标执行设备。如果候选执行设备集合包括多个候选执行设备,则可以从该多个候选执行设备中随机选择一个候选执行设备作为目标执行设备。
73.其中,步骤s402-s403的具体实施方式可以参见上述实施例步骤s202-s203的具体描述,此处不再赘述。
74.在本技术实施例中,可以预先对待处理任务集合中的多个待处理任务进行任务触发预测,以从待处理任务集合中确定需要进行任务调度的待处理任务,即目标任务,从而可以实现任务触发的智能化,也可以简化用户在任务操作界面上的相关操作,以提高任务处理速度,也可以提高用户体验。在监控到设备集群中存在异常执行设备时,可以基于多个维度的特征选择目标执行设备,可以提高任务执行异常后的调度转移的合理性,从而提高任
务处理的可靠性。
75.请参阅图5,图5是本技术实施例提供的一种任务调度装置的结构示意图。所述任务调度装置包括:
76.检测单元501,用于当在任务操作界面上检测到与触发任务相关联的触发指令时,基于所述触发指令确定目标任务集合,所述目标任务集合包括多个目标任务;
77.确定单元502,用于对所述目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合,每个子任务集合包括一个或多个目标任务;
78.推送单元503,用于按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据所述各个执行设备的执行情况确定各自的任务状态;
79.选择单元504,用于获取所述各个执行设备的任务状态,当检测到所述设备集群中存在异常的异常执行设备时,根据所述任务状态从所述设备集群中选择目标执行设备;
80.所述推送单元503,还用于将所述异常执行设备对应的子任务集合推送给所述目标执行设备。
81.在一种实现方式中,所述确定单元502,还用于:
82.针对所述设备集群中任一执行设备,按照预设时间间隔向所述任一执行设备发送信号探测请求,以请求所述任一执行设备返回目标数据;
83.确定是否在预设时间段内接收到所述任一执行设备发送的所述目标数据;
84.若未接收到所述目标数据,则将所述任一执行设备确定为异常执行设备。
85.在一种实现方式中,所述选择单元504,具体用于:
86.从所述设备集群中确定任务状态为目标任务状态的初始执行设备,得到初始执行设备集合,所述初始执行设备集合包括一个或多个初始执行设备;
87.分别获取各个初始执行设备的空闲负载量,根据所述空闲负载量从所述初始执行设备集合中确定目标执行设备。
88.在一种实现方式中,所述选择单元504,具体用于:
89.确定所述异常执行设备对应的子任务集合的任务总数据量;
90.从所述初始执行设备集合中确定空闲负载量大于或等于所述任务总数据量的候选执行设备,得到候选执行设备集合,所述候选执行设备集合包括一个或多个候选执行设备;
91.从所述候选执行设备集合中选择目标执行设备。
92.在一种实现方式中,所述设备集群中执行设备的设备数量为m,所述子任务集合的数量为n;所述推送单元503,具体用于:
93.当所述n小于或等于所述m时,从所述设备集群中为所述各个子任务集合选择一个执行设备,并将所述各个子任务集合推送给对应的执行设备,所述各个子任务集合对应的执行设备不同;
94.当所述n大于所述m时,从所述多个子任务集合中选择m个子任务集合,将所述m个子任务集合中的每个子任务集合推送给所述设备集群中的一个执行设备,并在获取到执行设备的任务状态为目标任务状态时,将n-m个子任务集合中的一个子任务集合推送给任务状态为目标任务状态的执行设备。
95.在一种实现方式中,所述推送单元503,具体用于:
96.获取各个子任务集合对应的参考任务时间,任一参考任务时间包括:所述任一子任务集合的所有目标任务对应的任务时间中最早任务时间或最晚任务时间;
97.按照参考任务时间从大到小的顺序依次对所述多个子任务集合进行排序,得到任务集合排序结果;
98.从所述任务集合排序结果中选择位于前m位的子任务集合。
99.在一种实现方式中,所述检测单元501,还用于:
100.获取待处理任务集合中各个待处理任务的任务属性;
101.调用预训练的任务识别模型对所述任务属性进行识别处理,得到每个待处理任务的识别结果;
102.确定待处理任务集合中识别结果为目标识别结果的待处理任务,并在确定识别结果为目标识别结果的待处理任务后,生成与触发任务相关联的触发指令,所述触发指令关联识别结果为目标识别结果的待处理任务。
103.可以理解的是,本技术实施例所描述的任务调度装置的各功能单元的功能可根据图2或图4所述的方法实施例中的方法具体实现,其具体实现过程可以参照图2或图4的方法实施例的相关描述,此处不再赘述。
104.本技术实施例中,检测单元501当在任务操作界面上检测到与触发任务相关联的触发指令时,基于所述触发指令确定目标任务集合,所述目标任务集合包括多个目标任务;确定单元502对所述目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合,每个子任务集合包括一个或多个目标任务;推送单元503按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据所述各个执行设备的执行情况确定各自的任务状态;选择单元504获取所述各个执行设备的任务状态,当检测到所述设备集群中存在异常的异常执行设备时,根据所述任务状态从所述设备集群中选择目标执行设备,推送单元503将所述异常执行设备对应的子任务集合推送给所述目标执行设备。通过实施上述方法,可以提高触发任务调度的灵活性。
105.请参阅图6,图6是本技术实施例提供的一种服务器的结构示意图。该服务器包括:处理器601、存储器602以及网络接口603。上述处理器601、存储器602以及网络接口603之间可以交互数据。
106.上述处理器601可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
107.上述存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供程序指令和数据。存储器602的一部分还可以包括随机存取存储器。其中,所述处理器601调用所述程序指令时用于执行:
108.当在任务操作界面上检测到与触发任务相关联的触发指令时,基于所述触发指令
确定目标任务集合,所述目标任务集合包括多个目标任务;
109.对所述目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合,每个子任务集合包括一个或多个目标任务;
110.按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据所述各个执行设备的执行情况确定各自的任务状态;
111.获取所述各个执行设备的任务状态,当检测到所述设备集群中存在异常的异常执行设备时,根据所述任务状态从所述设备集群中选择目标执行设备,并将所述异常执行设备对应的子任务集合推送给所述目标执行设备。
112.在一种实现方式中,所述处理器601,还用于:
113.针对所述设备集群中任一执行设备,按照预设时间间隔向所述任一执行设备发送信号探测请求,以请求所述任一执行设备返回目标数据;
114.确定是否在预设时间段内接收到所述任一执行设备发送的所述目标数据;
115.若未接收到所述目标数据,则将所述任一执行设备确定为异常执行设备。
116.在一种实现方式中,所述处理器601,具体用于:
117.从所述设备集群中确定任务状态为目标任务状态的初始执行设备,得到初始执行设备集合,所述初始执行设备集合包括一个或多个初始执行设备;
118.分别获取各个初始执行设备的空闲负载量,根据所述空闲负载量从所述初始执行设备集合中确定目标执行设备。
119.在一种实现方式中,所述处理器601,具体用于:
120.确定所述异常执行设备对应的子任务集合的任务总数据量;
121.从所述初始执行设备集合中确定空闲负载量大于或等于所述任务总数据量的候选执行设备,得到候选执行设备集合,所述候选执行设备集合包括一个或多个候选执行设备;
122.从所述候选执行设备集合中选择目标执行设备。
123.在一种实现方式中,所述设备集群中执行设备的设备数量为m,所述子任务集合的数量为n;所述处理器601,具体用于:
124.当所述n小于或等于所述m时,从所述设备集群中为所述各个子任务集合选择一个执行设备,并将所述各个子任务集合推送给对应的执行设备,所述各个子任务集合对应的执行设备不同;
125.当所述n大于所述m时,从所述多个子任务集合中选择m个子任务集合,将所述m个子任务集合中的每个子任务集合推送给所述设备集群中的一个执行设备,并在获取到执行设备的任务状态为目标任务状态时,将n-m个子任务集合中的一个子任务集合推送给任务状态为目标任务状态的执行设备。
126.在一种实现方式中,所述处理器601,具体用于:
127.获取各个子任务集合对应的参考任务时间,任一参考任务时间包括:所述任一子任务集合的所有目标任务对应的任务时间中最早任务时间或最晚任务时间;
128.按照参考任务时间从大到小的顺序依次对所述多个子任务集合进行排序,得到任务集合排序结果;
129.从所述任务集合排序结果中选择位于前m位的子任务集合。
130.在一种实现方式中,所述处理器601,还用于:
131.获取待处理任务集合中各个待处理任务的任务属性;
132.调用预训练的任务识别模型对所述任务属性进行识别处理,得到每个待处理任务的识别结果;
133.确定待处理任务集合中识别结果为目标识别结果的待处理任务,并在确定识别结果为目标识别结果的待处理任务后,生成与触发任务相关联的触发指令,所述触发指令关联识别结果为目标识别结果的待处理任务。
134.具体实现中,本技术实施例中所描述的处理器601和存储器602可执行本技术实施例图2或图4提供的任务调度方法中所描述的实现方式,也可执行本技术实施例图5所描述的任务调度装置的实现方式,在此不再赘述。
135.本技术实施例中,处理器601可以当在任务操作界面上检测到与触发任务相关联的触发指令时,基于所述触发指令确定目标任务集合,所述目标任务集合包括多个目标任务;对所述目标任务集合中的各个目标任务进行分片处理,得到多个子任务集合,每个子任务集合包括一个或多个目标任务;按照预设推送规则将各个子任务集合推送给设备集群中所包括的多个执行设备,以使各个执行设备执行所接收到的子任务集合中的目标任务,并根据所述各个执行设备的执行情况确定各自的任务状态;获取所述各个执行设备的任务状态,当检测到所述设备集群中存在异常的异常执行设备时,根据所述任务状态从所述设备集群中选择目标执行设备,并将所述异常执行设备对应的子任务集合推送给所述目标执行设备。通过实施上述方法,从而可以提高触发任务调度的灵活性。
136.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序执行时可包括如图2或图4对应实施例中的任务调度方法的部分或全部步骤。
137.需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
138.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
139.需要强调的是,为进一步保证上述数据的私密和安全性,上述数据还可以存储于一区块链的节点中。其中,本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
140.以上对本技术实施例所提供的一种任务调度方法、装置、服务器及存储介质进行
了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。