CN116880983A - 一种任务分发的方法、装置、存储介质及电子设备 - Google Patents
一种任务分发的方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116880983A CN116880983A CN202310875726.9A CN202310875726A CN116880983A CN 116880983 A CN116880983 A CN 116880983A CN 202310875726 A CN202310875726 A CN 202310875726A CN 116880983 A CN116880983 A CN 116880983A
- Authority
- CN
- China
- Prior art keywords
- task
- scene
- list
- tasks
- dependency relationship
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000001419 dependent effect Effects 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012795 verification Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请的一些实施例提供了一种任务分发的方法、装置、存储介质及电子设备,该方法包括:确定多个任务场景中各个任务场景之间的任务场景依赖关系;确定所述各个任务场景中各个任务之间的任务依赖关系;基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表;基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点。本申请的一些实施例可以实现对任务的灵活分发,既保证每个节点上任务的业务正常,又从整体上提高了整体的执行效率。
Description
技术领域
本申请涉及任务分发技术领域,具体而言,涉及一种任务分发的方法、装置、存储介质及电子设备。
背景技术
随着互联网技术的不断发展,检查知识验证及安全指纹验证工作中,通常存在大量的验证任务或其他类型任务(例如,几千、几万个任务)的执行。
目前,在实际中通常将任务分配给多个节点进行执行。在进行任务分配时一般通过控制服务器向各分布式控制子服务器(也就是多个节点)进行任务分配以实现域间任务分发管理。控制子服务器根据任务服务器发送来的第二任务请求,将控制子服务器分配得到的任务分配给各个任务服务器进行处理,并且每项任务都指定了控制子服务器或者任务服务器的ID。虽然该方法可以保证任务的有效执行,但是其通过任务和控制子服务器或者任务服务器的ID绑定的方式进行任务分发,分发形式较为单一,灵活性较差,无法适应基于场景的任务分发。
因此,如何提供一种灵活性较高的任务分发的方法的技术方案成为亟需解决的技术问题。
发明内容
本申请的一些实施例的目的在于提供一种任务分发的方法、装置、存储介质及电子设备,通过本申请的实施例的技术方案可以基于场景和任务间的关系实现对任务的动态分发,灵活性较高,且保证了任务的分发效率和执行效率。
第一方面,本申请的一些实施例提供了一种任务分发的方法,包括:确定多个任务场景中各个任务场景之间的任务场景依赖关系;确定所述各个任务场景中各个任务之间的任务依赖关系;基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表;基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点。
本申请的一些实施例通过对任务之间的任务场景进行分析得到任务场景依赖关系,又基于任务间的关系得到各个任务场景下的任务依赖关系,以此生成对应的任务列表,并基于任务列表进行任务分发。本申请的实施例通过分析任务场景和任务之间的关联关系,可以实现对任务的动态分发,使得任务高效的分发至对应的节点,灵活性较高,且保证了任务的分发效率和执行效率。
在一些实施例,所述确定多个任务场景中各个任务场景之间的任务场景依赖关系,包括:按照所述待分配任务所属的业务场景进行规划,得到所述多个任务场景,其中,所述各个任务场景中各个任务属于一个相同业务场景;对所述各个任务场景中的关联情况进行分析,得到所述任务场景依赖关系。
本申请的一些实施例通过对待分配任务所属的业务场景进行划分得到多个任务场景,然后对多个任务场景的关联情况进行分析得到任务场景依赖关系,可以实现对存在场景依赖的任务进行有效处理。
在一些实施例,所述确定所述各个任务场景中各个任务之间的任务依赖关系,包括:通过确认所述各个任务之间存在的执行顺序,得到所述任务依赖关系。
本申请的一些实施例通过对任务间的执行顺序进行确定得到任务依赖关系,可以确保后续任务的有效执行。
在一些实施例,所述基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表,包括:通过所述任务场景依赖关系,确定所述各个任务场景的场景执行顺序;通过所述任务依赖关系,确定所述各个任务场景中各个任务的任务执行顺序;生成与所述各个任务场景的场景执行顺序和所述各个任务的任务执行顺序对应的所述任务列表,其中,所述任务列表中包括:每个任务的场景名称和任务名称。
本申请的一些实施例通过任务场景依赖关系和任务依赖关系,分别确定场景执行顺序和任务执行顺序,并生成对应的任务列表,可以确认场景和任务的执行顺序,保证后续任务的有效执行和提升执行效率。
在一些实施例,所述通过所述任务场景依赖关系,确定所述各个任务场景的场景执行顺序,包括:读取第i个任务场景,其中,所述第i个任务场景为所述多个任务场景中的任一个;在确认所述第i个任务场景不在场景列表中之后,若确认所述第i个任务场景在所述任务场景依赖关系中存在依赖场景,则读取所述依赖场景并存储至所述场景列表,其中,所述场景列表用于表征所述场景执行顺序。
本申请的一些实施例通过读取任一任务场景并对其进行分析确定场景列表,可以实现对场景执行顺序的精准确定,为后续任务执行的有效性提供保障。
在一些实施例,所述通过所述任务依赖关系,确定所述各个任务场景中各个任务的任务执行顺序,包括:读取所述第i个任务场景下的第j个任务,其中,所述第j个任务为所述各个任务中的任一个;在确认所述第j个任务不在第i任务列表中之后,若确认所述第j个任务在所述任务依赖关系中存在关联任务,则读取所述关联任务并存储至所述第i任务列表,其中,所述第i任务列表用于表征所述第i个任务场景中各个任务的任务执行顺序。
本申请的一些实施例通过读取任一任务场景下任一任务,并对其进行分析确定第i任务列表,可以实现对任务执行顺序的精准确定,为后续任务执行的有效性提供保障。
在一些实施例,所述基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点,包括:将所述任务列表中的所有任务按照场景名称进行分组,得到多个任务组;确认所述多个任务组中的全局依赖任务组和局部依赖任务组;将所述全局依赖任务组中的任务分发至所有节点,将所述局部依赖任务组中的任务分发至所述所有节点中的任一节点。
本申请的一些实施例通过对任务列表中的任务进行分组得到全局依赖任务组和局部依赖任务组后分发至对应的节点,可以实现任务的动态分发,灵活性较高。
在一些实施例,在所述将所述各个任务场景中的各个任务分发至对应节点之后,所述方法还包括:接收所述所有节点中各个节点的任务执行结果。
本申请的一些实施例通过得到各个节点的任务执行结果,可以实现对任务执行情况的管理。
第二方面,本申请的一些实施例提供了一种任务分发的装置,包括:第一确定模块,被配置为确定多个任务场景中各个任务场景之间的任务场景依赖关系;第二确定模块,被配置为确定所述各个任务场景中各个任务之间的任务依赖关系;任务生成模块,被配置为基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表;任务分发模块,被配置为基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点。
第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的方法。
第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的方法。
第五方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。
附图说明
为了更清楚地说明本申请的一些实施例的技术方案,下面将对本申请的一些实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请的一些实施例提供的一种任务分发的系统图;
图2为本申请的一些实施例提供的任务分发的方法流程图之一;
图3为本申请的一些实施例提供的任务分发的方法流程图之二;
图4为本申请的一些实施例提供的任务分发结构图;
图5为本申请的一些实施例提供的一种任务分发的装置组成框图;
图6为本申请的一些实施例提供的一种电子设备示意图。
具体实施方式
下面将结合本申请的一些实施例中的附图,对本申请的一些实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
相关技术中,在进行任务分发时,一种方式是采用2级任务分发管理节点,分别实现域间任务分发管理和域内任务的分发管理;该方法中能进行任务分发的关键是无论哪一级的任务列表中的每项任务都指定了控制子服务器或者任务服务器的ID。也就是在每一级任务下发前,将任务和控制子服务器或者任务服务器的ID进行了绑定。此种方式主要关注执行节点的负载情况、带宽情况、处理能力、重要任务冗余分发,目的是提高服务器资源的利用率。但此方案在处理基于场景的任务或者有依赖关系的任务分发时不够灵活,无法保证同一场景或有依赖关系的任务下发到同一节点。
另外一种任务分发的方法中,主要应用于手机APP的测试领域,调度终端可以获取终端设备的终端型号或终端属性,并根据终端属性和/或终端型号从预设测试库匹配相对应的测试任务,再将测试任务下发至代理终端,以使终端设备进行相对应的测试。从该方案看,对于匹配终端信息的所有任务都会下发到指定的终端,这并不能解决向多个相同终端发送任务,以实现加快任务执行的目的。
由上述相关技术可知,现有技术中任务分发的方法的灵活的较差,且适应性比较局限,对于存在场景依赖和任务依赖关系的任务无法实现有效分发。
鉴于此,本申请的一些实施例提供了一种任务分发的方法,该方法通过确定多个任务场景中各个任务场景之间的任务场景依赖关系,以及确定各个任务场景下的各个任务之间的任务依赖关系之后,可以基于任务场景依赖关系和任务依赖关系生成对应的任务列表,最后按照任务列表将任务分发至对应的节点。本申请的一些实施例通过分别对场景、任务间的依赖关系进行分析,可以实现对任务的有效和灵活分发,既保证每个节点上任务的业务正常,又从整体上提高了整体的执行效率。
下面结合附图1示例性阐述本申请的一些实施例提供的任务分发的系统的整体组成结构。
如图1所示,本申请的一些实施例提供了一种任务分发的系统,该任务分发的系统包括:终端100和第一节点101、第二节点102......第n节点。其中,终端100可以对待分配任务进行分析处理得到任务列表,并基于任务列表将任务分发给第一节点101、第二节点102......第n节点中的部分节点或全部节点。第一节点101、第二节点102......第n节点可以执行被分发到的任务。具体的,终端100在获取到待分配任务后,可以对待分配任务中的业务场景进行分析,得到对应的多个任务场景。之后对多个任务场景中各个任务场景间的关联关系进行分析,得到任务场景依赖关系,通过对各个任务场景包含的任务间的关系进行分析得到任务依赖关系。最后基于任务场景依赖关系和任务依赖关系,可以生成任务列表。终端100可以通过对任务列表进行分组后,将任务中的各个任务场景中的各个任务分发至对应节点。
在本申请的一些实施例中,终端100可以是移动终端,也可以是非便携的电脑终端;或者,终端100还可以是服务器终端。第一节点101、第二节点102......第n节点可以为可以执行相应任务的服务器或其他类型的终端设备。n为正整数。具体的,可以根据实际情况进行选择和设置n的数量,本申请实施例在此不作具体限定。
下面结合附图2示例性阐述本申请的一些实施例提供的由终端100执行的任务分发的实现过程。
请参见附图2,图2为本申请的一些实施例提供的一种任务分发的方法流程图,该任务分发的方法包括:
S210,确定多个任务场景中各个任务场景之间的任务场景依赖关系。
例如,在本申请的一些实施例中,在对存在任务场景关联关系的任务进行分发时,需要确认任务场景依赖关系,以便于对任务的有效分发。
在本申请的一些实施例中,S210可以包括:按照所述待分配任务所属的业务场景进行规划,得到所述多个任务场景,其中,所述各个任务场景中各个任务属于一个相同业务场景;对所述各个任务场景中的关联情况进行分析,得到所述任务场景依赖关系。
例如,在本申请的一些实施例中,终端100可以通过对待分配任务所涉及的业务场景进行分析验证,将需要在一个业务场景中执行的任务定义成一个任务场景(简称场景)。然后继续分析任务场景之间是否具有依赖关系,比如B任务场景(简称场景B)依赖A任务场景(简称场景A),可以描述为:A->B。
具体的,可以对产品的业务功能流程进行切分,划分大的业务功能模块,形成任务场景。例如,在某业务中,首先要执行认证系统的操作,然后才能创建资产,最后才能创建任务对指定的资产进行扫描。那么跟登录相关的一系列操作就划分成登录任务场景(例如为B任务场景);创建资产又是一个业务场景,里面也包含一系列的操作,此时可以划分为创建资产场景(例如为A任务场景);其他的创建扫描任务、启动任务、查看结果、退出系统的任务场景划分原理也是一样的。通过上述一系列划分和关联性分析,可以得到任务场景依赖关系(简称场景依赖关系)。
S220,确定所述各个任务场景中各个任务之间的任务依赖关系。
例如,在本申请的一些实施例中,通过分析各个任务场景内的任务之间的依赖关系,得到任务依赖关系。例如,在场景A内部的任务b依赖任务a,可以描述为:a->b。
在本申请的一些实施例中,通过确认所述各个任务之间存在的执行顺序,得到所述任务依赖关系。
例如,在本申请的一些实施例中,场景内的任务都是对系统某些按顺序进行的功能操作,目的是为了实现一定的业务功能。受限于系统的功能设计,这些操作或者一部分操作之间存在依赖关系。这些约束关系是系统功能固有的,因此,可以通过假设法来发现这种关系。例如,一个场景内包含任务a和任务b。如果按照a、b的顺序执行可以正常完成业务功能。假如按照b、a的顺序是否可以完成相同的业务功能呢?如果是,则a、b没有依赖关系;如果否,则a、b具备依赖关系a->b。比如:执行登录操作包含几个步骤:1、打开页面(也就是任务a);2、输入用户名密码验证码等信息,并点击登录,检查是否登录成功(也就是任务b)。以上两个步骤是有依赖关系的,上面的2个操作步骤对应于场景内的任务,因此存在依赖关系a->b。
S230,基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表。
例如,在本申请的一些实施例中,可以对任务场景依赖关系和任务依赖关系进行分析,得到任务列表。
在本申请的一些实施例中,S230可以包括:
S231,通过所述任务场景依赖关系,确定所述各个任务场景的场景执行顺序;
例如,在本申请的一些实施例中,通过扫描定义的所有场景及任务场景依赖关系,对场景进行排序,形成一个场景队列。如果按照队列执行场景,保证处于任务场景依赖关系前端的场景,先执行。
在本申请的一些实施例中,S231可以包括:读取第i个任务场景,其中,所述第i个任务场景为所述多个任务场景中的任一个;在确认所述第i个任务场景不在场景列表中之后,若确认所述第i个任务场景在所述任务场景依赖关系中存在依赖场景,则读取所述依赖场景并存储至所述场景列表,其中,所述场景列表用于表征所述场景执行顺序。
例如,在本申请的一些实施例中,场景列表的获取方法具体如下:
S2.1:初始化一个空队列(空队列用于存储排序好的场景列表);
S2.2:读入第i个场景;
S2.3:检查第i个场景是否已经存在在队列中,如果已经存在,无需再处理;如果不存在,则执行S2.4;
S2.4:检查第i个场景是否存在依赖场景,如果不存在,或者依赖场景都已经在队列中,则将当前第i个场景放入队列末尾,令i=i+1;如果存在,则获取依赖场景列表,读入依赖场景列表,针对依赖场景列表中的每个场景再返回S2.2。
直到所有的场景均在队列中后,得到场景列表后结束。
S232,通过所述任务依赖关系,确定所述各个任务场景中各个任务的任务执行顺序;
例如,在本申请的一些实施例中,根据任务依赖关系计算在各个任务场景下的任务执行顺序,以便于先处理处于依赖关系中最前端的任务。
在本申请的一些实施例中,S232可以包括:读取所述第i个任务场景下的第j个任务,其中,所述第j个任务为所述各个任务中的任一个;在确认所述第j个任务不在第i任务列表中之后,若确认所述第j个任务在所述任务依赖关系中存在关联任务,则读取所述关联任务并存储至所述第i任务列表,其中,所述第i任务列表用于表征所述第i个任务场景中各个任务的任务执行顺序。
例如,在本申请的一些实施例中,第i个任务场景中第i任务列表的获取方法具体如下:
S3.1:初始化一个空队列(空队列用于存储排序好的第i任务列表);
S3.2:读入第i个场景下的第j个任务;
S3.3:检查第j个任务是否已经存在在队列中,如果已经存在,无需再处理;如果不存在,则执行S3.4;
S3.4:检查第j个任务是否存在关联任务,如果不存在,或者关联任务都已经在队列中,则将当前第j个任务放入队列末尾,之后令j=j+1;如果存在,则获取关联任务,读入关联任务(关联任务为至少一个),针对至少一个关联任务中的每一个关联任务再返回S3.2。
应理解,一个场景内的所有的任务均在队列中后得到对应的任务列表之后,再去对下一个场景按照上述方式进行任务排序,直至所有场景中的所有任务排序完成后结束。
S233,生成与所述各个任务场景的场景执行顺序和所述各个任务的任务执行顺序对应的所述任务列表,其中,所述任务列表中包括:每个任务的场景名称和任务名称。
例如,在本申请的一些实施例中,在生成每项任务时,设置任务所属场景的属性、任务所进行的操作名称。比如可以在任务列表中包含这两类信息:场景名称-操作名称(作为任务名称的一个具体示例)。最后生成的任务数据,是按照场景执行顺序和任务执行顺序排序的任务列表,每个任务中包含所属场景名称和操作名称。
S240,基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点。
例如,在本申请的一些实施例中,通过任务列表可以明确各个任务需要分配到的节点,按此分发即可。
在本申请的一些实施例中,S240可以包括:将所述任务列表中的所有任务按照场景名称进行分组,得到多个任务组;确认所述多个任务组中的全局依赖任务组和局部依赖任务组;将所述全局依赖任务组中的任务分发至所有节点,将所述局部依赖任务组中的任务分发至所述所有节点中的任一节点。
例如,在本申请的一些实施例中,终端100还可以加载任务列表后,从任务列表中的任务数据中提取任务所属的场景及操作名称,然后使用场景名称进行任务组切分,分组后可以得到需要被分派到所有子节点的全局依赖任务组,以及可以随机分发到任一节点的局部依赖任务组。也就是说,有依赖关系的任务组,必须分发到相同子节点执行,并且保持任务间依赖顺序。在进行分发时,任务数据存储在一个先入先出的队列中。取一个任务组,如果当前任务组为全局依赖任务组则需要全部分发,则分发一个节点后记录一个节点,直到所有节点分发完毕,再从队列中移除;如果任务组是随机分发组(作为局部依赖任务组的一个具体示例),则分发给一个节点后,就从队列中移除。
可以理解的是,通过场景依赖关系及任务依赖关系的约束,保证每个执行节点上业务的完整性,避免由于前置任务未执行,导致后续任务失败。在此需求下,少量前置场景中的任务组会下发到所有节点,大量的普通任务组随机分发到一个节点上执行。既保证了每个节点上任务的业务正常,又从整体上提高了整体的执行效率。而且,通过将任务按照场景拆分成任务组,按照任务组将任务分发到执行节点上,保证一个业务场景内的任务都下发到一个执行节点上去执行。任务组与执行的节点没有绑定关系,分发时动态选择一个或多个执行节点,只要是当前可用的节点都可能执行该组任务。
在本申请的一些实施例中,在执行S240之后,任务分发的方法还包括:接收所述所有节点中各个节点的任务执行结果。
例如,在本申请的一些实施例中,各子节点(也就是各个节点)按照接收的任务按顺序执行任务之后,并反馈执行结果到终端100(作为任务执行结果的一个具体示例)。
下面结合附图3示例性阐述本申请的一些实施例提供的任务分发的具体过程。
请参见附图3,图3为本申请的一些实施例提供的一种任务分发的流程图。
下面以应用于检查知识验证工作中大量验证任务在分布式节点的分发功能的场景为例示例性阐述上述过程。
S310,按照待分配任务所属的业务场景进行规划,得到多个任务场景。
例如,作为本申请的一个具体示例,分析检查知识验证涉及到的业务场景。该部分涉及到的业务场景:用户认证,对设备类型1的检查知识进行验证,对设备类型2的检查知识进行验证,……,对设备类型n的检查知识进行验证,退出系统。因此,可以分为认证任务场景、检查知识任务场景和退出任务场景。
S320,对各个任务场景中的关联情况进行分析,得到任务场景依赖关系。
例如,作为本申请的一个具体示例,以上的验证过程中场景间的依赖关系包括:首先用户必须先登录系统,然后才能进行后续的验证工作,所有工作结束后,退出系统。因此上述的依赖关系可以描述为:
用户认证->对设备类型1的检查知识进行验证
用户认证->对设备类型2的检查知识进行验证
……
用户认证->对设备类型n的检查知识进行验证
对设备类型1的检查知识进行验证,对设备类型2的检查知识进行验证,……对设备类型n的检查知识进行验证->退出系统。
S330,确定各个任务场景中各个任务之间的任务依赖关系。
例如,作为本申请的一个具体示例,认证任务场景“用户认证”中包含2个任务:访问首页->正确登录(作为任务依赖关系的一个具体示例)。
检查知识任务场景“对设备类型n的检查知识进行验证”中包含8个任务:设备类型n-查询报表模板ID->设备类型n-添加任务-1个资产检查->设备类型n-获取任务列表-1个资产检查->设备类型n-启动第一个任务-1个资产检查->设备类型n-查询任务状态-1个资产检查->设备类型n-第1次获取执行历史详情-1个资产检查->设备类型n-获取第1个报表地址-1个资产检查->设备类型n-请求第1个报表内容-1个资产检查。
退出任务场景“退出系统”中包含1个任务:退出登录。
S340,通过任务场景依赖关系,确定各个任务场景的场景执行顺序。
例如,作为本申请的一个具体示例,如下文中的表1所示。
S350,通过任务依赖关系,确定各个任务场景中各个任务的任务执行顺序。
例如,作为本申请的一个具体示例,上一步分析出场景/任务依赖关系后,根据依赖关系确定场景和场景含有的任务顺序。生成如下文中的表1所示的场景执行顺序和任务执行顺序。其中,任务中包含了场景名称和操作名称。任务表格还可以包括其他属性,具体的可以根据实际情况进行扩展,本申请实施例并不局限于此。
S360,生成与各个任务场景的场景执行顺序和各个任务的任务执行顺序对应的任务列表。
例如,作为本申请的一个具体示例,如表1所示。
表1
S370,将任务列表中的所有任务按照场景名称进行分组,得到全局依赖任务组和局部依赖任务组。
例如,作为本申请的一个具体示例,按照任务中的场景名称进行分组,得到任务组,如表2所示。
表2
/>
/>
根据场景依赖关系,可以发现被全局依赖的场景是用户认证,为了保持业务的完整性,最后一个退出系统的场景,也应该在所有节点上执行。因此,“用户认证任务组”和“退出系统任务组”为全局依赖任务组。除了这两个场景外,其他的场景之间没有相互依赖的关系,可以随机分发,为局部依赖任务组。
S380,将全局依赖任务组和局部依赖任务组分发至对应的节点。
例如,作为本申请的一个具体示例,首先,用户认证任务组分发到所有可用节点;然后,设备类型1至设备类型n的验证任务组可以随机分发到任何一个可用节点;最后:退出系统的任务组分发到所有可用节点。
基于表2中的任务列表按照任务组取任务,进行任务分发,当前任务组分发完毕后从队列中移除,直至所有的任务组分发完毕。例如,按照如图4所示的任务分发系统进行任务分发,3个执行节点的任务分发情况如图4所示:用户认证任务组分发至3个执行节点上,设备类型1、5...等验证任务分发到了第一执行节点410,设备类型2、4...等验证任务分发到了第二执行节点420,设备类型3、6...等验证任务分发到了第三执行节点430,在完成设备类型n的验证任务分发完毕后,将推出系统任务组分发至3个执行节点上,至此完成任务分发。
S390,接收所有节点中各个节点的任务执行结果。
例如,作为本申请的一个具体示例,各执行节点根据接收的任务列表按顺序执行任务,并将执行结果反馈给终端100。
具体的,S310~S390的具体实现过程可参照上文提供的方法实施例,为避免重复,此处适当省略详细描述。
通过上述本申请的一些实施例提供的任务分发的方法,可以通过场景对任务列表进行切分,根据依赖关系,自动计算分发策略,既保证各执行节点上任务的业务完整性,又能提高整体的执行效率;任务组与执行节点没有绑定关系,选择可用节点进行动态分发,灵活性高。
请参考图5,图5示出了本申请的一些实施例提供的任务分发的装置的组成框图。应理解,该任务分发的装置与上述方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该任务分发的装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
图5的任务分发的装置包括至少一个能以软件或固件的形式存储于存储器中或固化在任务分发的装置中的软件功能模块,该任务分发的装置包括:第一确定模块510,被配置为确定多个任务场景中各个任务场景之间的任务场景依赖关系;第二确定模块520,被配置为确定所述各个任务场景中各个任务之间的任务依赖关系;任务生成模块530,被配置为基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表;任务分发模块540,被配置为基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点。
在本申请的一些实施例中,第一确定模块510,被配置为按照所述待分配任务所属的业务场景进行规划,得到所述多个任务场景,其中,所述各个任务场景中各个任务属于一个相同业务场景;对所述各个任务场景中的关联情况进行分析,得到所述任务场景依赖关系。
在本申请的一些实施例中,第二确定模块520,被配置为通过确认所述各个任务之间存在的执行顺序,得到所述任务依赖关系。
在本申请的一些实施例中,任务生成模块530,被配置为通过所述任务场景依赖关系,确定所述各个任务场景的场景执行顺序;通过所述任务依赖关系,确定所述各个任务场景中各个任务的任务执行顺序;生成与所述各个任务场景的场景执行顺序和所述各个任务的任务执行顺序对应的所述任务列表,其中,所述任务列表中包括:每个任务的场景名称和任务名称。
在本申请的一些实施例中,任务生成模块530,被配置为读取第i个任务场景,其中,所述第i个任务场景为所述多个任务场景中的任一个;在确认所述第i个任务场景不在场景列表中之后,若确认所述第i个任务场景在所述任务场景依赖关系中存在依赖场景,则读取所述依赖场景并存储至所述场景列表,其中,所述场景列表用于表征所述场景执行顺序。
在本申请的一些实施例中,任务生成模块530,被配置为读取所述第i个任务场景下的第j个任务,其中,所述第j个任务为所述各个任务中的任一个;在确认所述第j个任务不在第i任务列表中之后,若确认所述第j个任务在所述任务依赖关系中存在关联任务,则读取所述关联任务并存储至所述第i任务列表,其中,所述第i任务列表用于表征所述第i个任务场景中各个任务的任务执行顺序。
在本申请的一些实施例中,任务分发模块540,被配置为将所述任务列表中的所有任务按照场景名称进行分组,得到多个任务组;确认所述多个任务组中的全局依赖任务组和局部依赖任务组;将所述全局依赖任务组中的任务分发至所有节点,将所述局部依赖任务组中的任务分发至所述所有节点中的任一节点。
在本申请的一些实施例中,在任务分发模块540之后,任务分发的装置还包括:反馈模块(图中未示出)被配置为接收所述所有节点中各个节点的任务执行结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
本申请的一些实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。
本申请的一些实施例还提供了一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。
如图6所示,本申请的一些实施例提供一种电子设备600,该电子设备600包括:存储器610、处理器620以及存储在存储器610上并可在处理器620上运行的计算机程序,其中,处理器620通过总线630从存储器610读取程序并执行所述程序时可实现如上述任意实施例的方法。
处理器620可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器620可以是微处理器。
存储器610可以用于存储由处理器620执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器620可以用于执行存储器610中的指令以实现上述所示的方法。存储器610包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (11)
1.一种任务分发的方法,其特征在于,包括:
确定多个任务场景中各个任务场景之间的任务场景依赖关系;
确定所述各个任务场景中各个任务之间的任务依赖关系;
基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表;
基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点。
2.如权利要求1所述的方法,其特征在于,所述确定多个任务场景中各个任务场景之间的任务场景依赖关系,包括:
按照待分配任务所属的业务场景进行规划,得到所述多个任务场景,其中,所述各个任务场景中各个任务属于一个相同业务场景;
对所述各个任务场景中的关联情况进行分析,得到所述任务场景依赖关系。
3.如权利要求1或2所述的方法,其特征在于,所述确定所述各个任务场景中各个任务之间的任务依赖关系,包括:
通过确认所述各个任务之间存在的执行顺序,得到所述任务依赖关系。
4.如权利要求1或2所述的方法,其特征在于,所述基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表,包括:
通过所述任务场景依赖关系,确定所述各个任务场景的场景执行顺序;
通过所述任务依赖关系,确定所述各个任务场景中各个任务的任务执行顺序;
生成与所述各个任务场景的场景执行顺序和所述各个任务的任务执行顺序对应的所述任务列表,其中,所述任务列表中包括:每个任务的场景名称和任务名称。
5.如权利要求4所述的方法,其特征在于,所述通过所述任务场景依赖关系,确定所述各个任务场景的场景执行顺序,包括:
读取第i个任务场景,其中,所述第i个任务场景为所述多个任务场景中的任一个;
在确认所述第i个任务场景不在场景列表中之后,若确认所述第i个任务场景在所述任务场景依赖关系中存在依赖场景,则读取所述依赖场景并存储至所述场景列表,其中,所述场景列表用于表征所述场景执行顺序。
6.如权利要求5所述的方法,其特征在于,所述通过所述任务依赖关系,确定所述各个任务场景中各个任务的任务执行顺序,包括:
读取所述第i个任务场景下的第j个任务,其中,所述第j个任务为所述各个任务中的任一个;
在确认所述第j个任务不在第i任务列表中之后,若确认所述第j个任务在所述任务依赖关系中存在关联任务,则读取所述关联任务并存储至所述第i任务列表,其中,所述第i任务列表用于表征所述第i个任务场景中各个任务的任务执行顺序。
7.如权利要求1或2所述的方法,其特征在于,所述基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点,包括:
将所述任务列表中的所有任务按照场景名称进行分组,得到多个任务组;
确认所述多个任务组中的全局依赖任务组和局部依赖任务组;
将所述全局依赖任务组中的任务分发至所有节点,将所述局部依赖任务组中的任务分发至所述所有节点中的任一节点。
8.如权利要求7所述的方法,其特征在于,在所述将所述各个任务场景中的各个任务分发至对应节点之后,所述方法还包括:
接收所述所有节点中各个节点的任务执行结果。
9.一种任务分发的装置,其特征在于,包括:
第一确定模块,被配置为确定多个任务场景中各个任务场景之间的任务场景依赖关系;
第二确定模块,被配置为确定所述各个任务场景中各个任务之间的任务依赖关系;
任务生成模块,被配置为基于所述任务场景依赖关系和所述任务依赖关系,生成任务列表;
任务分发模块,被配置为基于所述任务列表,将所述各个任务场景中的各个任务分发至对应节点。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中,所述计算机程序被处理器运行时执行如权利要求1-8中任意一项权利要求所述的方法。
11.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器运行时执行如权利要求1-8中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310875726.9A CN116880983A (zh) | 2023-07-17 | 2023-07-17 | 一种任务分发的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310875726.9A CN116880983A (zh) | 2023-07-17 | 2023-07-17 | 一种任务分发的方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116880983A true CN116880983A (zh) | 2023-10-13 |
Family
ID=88258309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310875726.9A Pending CN116880983A (zh) | 2023-07-17 | 2023-07-17 | 一种任务分发的方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116880983A (zh) |
-
2023
- 2023-07-17 CN CN202310875726.9A patent/CN116880983A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US8151248B1 (en) | Method and system for software defect management | |
CN109951547B (zh) | 事务请求并行处理方法、装置、设备和介质 | |
CN107870845A (zh) | 面向微服务架构应用的管理方法及系统 | |
CN108874558A (zh) | 分布式事务的消息订阅方法、电子装置及可读存储介质 | |
CN110557420B (zh) | 一种独立子链的运行方法及系统 | |
CN111190753B (zh) | 分布式任务处理方法、装置、存储介质和计算机设备 | |
CN110956269A (zh) | 数据模型的生成方法、装置、设备以及计算机存储介质 | |
CN111932257A (zh) | 一种区块链并行化处理方法及装置 | |
CN112182089B (zh) | 基于数据仓库模型的报表生成方法、装置和设备 | |
CN113157315A (zh) | 一种软件不同版本的差异信息识别方法、装置、设备及介质 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN113052696B (zh) | 金融业务任务处理方法、装置、计算机设备和存储介质 | |
CN114237587A (zh) | 一种基于IDEA技术服务SmartFlow的管控方法及系统 | |
CN111988429A (zh) | 算法调度方法以及系统 | |
CN112825525A (zh) | 用于处理事务的方法和装置 | |
CN113342500B (zh) | 任务执行方法、装置、设备及存储介质 | |
CN116880983A (zh) | 一种任务分发的方法、装置、存储介质及电子设备 | |
CN115934040A (zh) | 一种需求分析方法、装置、电子设备及存储介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
US20160004982A1 (en) | Method and system for estimating the progress and completion of a project based on a bayesian network | |
CN110609707A (zh) | 在线数据处理系统生成方法、装置及设备 | |
CN113741868B (zh) | 业务计算任务处理方法、装置、计算机设备和存储介质 | |
CN114327673A (zh) | 一种任务启动方法、装置、电子设备及存储介质 | |
CN113986495A (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 |