CN116048757A - 任务处理方法、装置、电子设备和存储介质 - Google Patents

任务处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116048757A
CN116048757A CN202310012740.6A CN202310012740A CN116048757A CN 116048757 A CN116048757 A CN 116048757A CN 202310012740 A CN202310012740 A CN 202310012740A CN 116048757 A CN116048757 A CN 116048757A
Authority
CN
China
Prior art keywords
task
node
tasks
target
target node
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
Application number
CN202310012740.6A
Other languages
English (en)
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 Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet 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 Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202310012740.6A priority Critical patent/CN116048757A/zh
Publication of CN116048757A publication Critical patent/CN116048757A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开关于一种任务处理方法、装置、电子设备和存储介质。所述方法包括:获取工作流中的多个目标节点任务;所述工作流包括多个节点任务,所述多个目标节点任务为所述多个节点任务中相互独立的节点任务;并发执行所述多个目标节点任务;在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务,并发执行所述第一子节点任务和其他未完成的目标节点任务;所述第一子节点任务在所述工作流中单依赖于所述已完成的目标节点任务。本公开方案中,可以在并发执行的多个任务中存在未完成任务时,继续执行单依赖于已完成任务的子节点任务,减少任务处理过程中的等待时间,提高任务处理效率。

Description

任务处理方法、装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种任务处理方法、装置、电子设备和存储介质。
背景技术
随着计算机技术发展,在处理包含多个节点任务的工作流时,为了优化各个节点任务的调度效率,处理设备可以根据工作流中各个任务节点的依赖关系执行多个节点任务。
在相关技术中,为了提高任务处理效率,可以通过层序遍历的方式处理多个节点任务,具体而言,在层序遍历中,可以逐层地进行节点任务处理,针对同层相互独立的节点任务可以并发处理,避免逐一依次执行。
然而,在实际处理节点任务的过程中,不同节点任务的处理时间长短不一,容易出现处理较快、更早完成的节点任务等待未完成节点任务处理完毕的情况,任务处理效率较低。
发明内容
本公开提供一种任务处理方法、装置、电子设备和存储介质,以至少解决相关技术中任务处理效率较低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种任务处理方法,包括:
获取工作流中的多个目标节点任务;所述工作流包括多个节点任务,所述多个目标节点任务为所述多个节点任务中相互独立的节点任务;
并发执行所述多个目标节点任务;
在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务,并发执行所述第一子节点任务和其他未完成的目标节点任务;所述第一子节点任务在所述工作流中单依赖于所述已完成的目标节点任务。
在一示例性实施例中,所述并发执行所述多个目标节点任务,包括:
调用多个线程并发执行所述多个目标节点任务;
所述并发执行所述第一子节点任务和其他未完成的目标节点任务,包括:
确定所述已完成的目标节点任务对应的线程为目标线程;
基于所述目标线程执行所述第一子节点任务,以及基于其他线程继续执行其他未完成的目标节点任务,所述其他线程为所述多个线程中除所述目标线程以外的线程。
在一示例性实施例中,所述基于所述目标线程执行所述第一子节点任务,包括:
在所述已完成的目标节点任务执行结束后,保持所述目标线程的占用状态;
将所述第一子节点任务确定为新的目标节点任务,并基于处于占用状态的所述目标线程继续执行所述新的目标节点任务;
所述并发执行所述第一子节点任务和其他未完成的目标节点任务之后,还包括:
返回在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务的步骤,直到各个目标节点任务完成。
在一示例性实施例中,所述将所述第一子节点任务确定为目标节点任务,利用处于占用状态中的所述目标线程继续执行所述目标节点任务,包括:
若所述第一子节点任务为多个,则将多个第一子节点任务确定为多个新的目标节点任务;
额外调用目标数量个线程;所述目标数量与所述目标线程的数量之和,等于所述新的目标节点任务的数量;
基于额外调用的线程和所述目标线程,并发执行多个新的目标节点任务。
在一示例性实施例中,所述获取所述已完成的目标节点任务的第一子节点任务,包括:
基于所述工作流的有向无环图,确定依赖于所述已完成的目标节点任务的各个子节点任务;所述有向无环图记录有所述工作流中多个节点任务之间的依赖关系;
将各个子节点任务中仅依赖一个父节点任务的子节点任务,确定为所述已完成的目标节点任务的第一子节点任务。
在一示例性实施例中,所述获取工作流中的多个目标节点任务,包括:
获取工作流的有向无环图;所述有向无环图记录有所述工作流中多个节点任务之间的依赖关系;
基于所述有向无环图中无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务,获取相互独立的多个目标节点任务。
在一示例性实施例中,所述有向无环图中的多个节点任务归属于至少两个层级,同一层级的节点任务相互独立,不同层级多个节点任务中的至少两个节点存在依赖关系;所述基于所述有向无环图中无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务,获取相互独立的多个目标节点任务,包括:
对于所述有向无环图中的目标层级,将归属于所述目标层级的多个节点任务中无前序节点任务的节点任务,和/或,前序节点任务已完成的节点任务,作为所述目标层级对应的多个目标节点任务;所述目标层级为所述有向无环图多个层级中的一层级。
在一示例性实施例中,在所述获取工作流中的多个目标节点任务之后,还包括:
将所述多个目标节点任务添加到任务队列;所述任务队列用于存放待并发执行的节点任务;
所述并发执行所述多个目标节点任务,包括:
并发执行所述任务队列中的各个节点任务。
在一示例性实施例中,所述在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务之后,还包括:
将所述第一子节点任务添加到所述任务队列,以并发执行所述任务队列中的第一子节点任务和其他未完成的目标节点任务。
在一示例性实施例中,还包括:
在并发执行过程中,对于当前已完成的目标节点任务,将所述已完成的目标节点任务的第二子节点任务添加到判定队列;
在判定所述判定队列中所述第二子节点任务的各个父节点任务完成时,将所述第二子节点任务转移到所述任务队列;
所述第二子节点任务为所述已完成的目标节点任务的子节点任务中依赖于至少两个父节点任务的节点任务。
根据本公开实施例的第二方面,提供一种任务处理装置,包括:
目标节点任务获取单元,被配置为执行获取工作流中的多个目标节点任务;所述工作流包括多个节点任务,所述多个目标节点任务为所述多个节点任务中相互独立的节点任务;
并发处理单元,被配置为执行并发执行所述多个目标节点任务;
第一子节点任务确定单元,被配置为执行在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务,并发执行所述第一子节点任务和其他未完成的目标节点任务;所述第一子节点任务在所述工作流中单依赖于所述已完成的目标节点任务。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一项所述的任务处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述任一项所述的任务处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如上述任一项所述的任务处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开方案中,可以在并发执行的多个任务中存在未完成任务时,继续执行单依赖于已完成任务的子节点任务,避免令优先完成的任务等待同层其他任务的完成后才继续处理后续任务,减少任务处理过程中的等待时间,提高任务处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种任务处理方法的流程图。
图2是根据一示例性实施例示出的一种并发执行多个目标节点任务的步骤的流程图。
图3是根据一示例性实施例示出的一种确定多个目标节点任务的步骤的流程图。
图4是根据一示例性实施例示出的一种有向无环图。
图5是根据一示例性实施例示出的另一种任务处理方法的流程图。
图6是根据一示例性实施例示出的另一种有向无环图。
图7是根据一示例性实施例示出的一种任务处理装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
图1是根据一示例性实施例示出的一种任务处理方法的流程图,如图1所示,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于其他基于工作流执行节点任务的设备,如服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现,例如终端可以向服务器提供工作流,并触发服务器执行工作流中的节点任务。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备;服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。可以理解,上述应用场景仅是一种示例,并不能构成对本公开实施例提供的任务处理方法的限制。
在步骤S110中,获取工作流中的多个目标节点任务;工作流包括多个节点任务,多个目标节点任务为多个节点任务中相互独立的节点任务。
具体实现中,在指示设备完成预设的业务任务时,可以将该业务任务划分为多个节点任务,即业务任务的任务结果可以依赖于多个节点任务的任务结果确定,为了合理地编排多个节点任务的任务处理顺序并进行相应的调度,可以针对多个节点任务设置工作流,同一工作流中的各个节点任务服务于同一个业务任务,该工作流的描述信息中可以记录有多个节点任务的依赖关系。
其中,依赖关系可以包括依赖和不依赖(或称为无依赖),依赖是指一节点任务的处理或执行依赖于其他节点任务的任务结果,不依赖是指一节点任务的处理或执行在当前时刻无需依赖于另一节点任务的任务结果。
在本步骤中,可以获取工作流,该工作流可以是从其他设备获取的,也可以是预先存储的。在得到工作流后,可以从工作流的多个节点任务中,确定出相互独立的节点任务作为目标节点任务。具体例如,针对工作流中的多个节点任务,可以将当前无需依赖其他节点任务的任务结果的节点任务,或者,已经获取到其依赖的节点任务的任务结果的节点任务,作为相互独立的多个节点任务。
在步骤S120中,并发执行多个目标节点任务。
在得到相互独立的多个目标节点任务后,由于多个目标节点任务之间不存在依赖,一节点任务的执行无需等待另一节点任务完成,可以并发地执行多个目标节点任务,例如可以同时触发多个目标节点任务的执行,并由不同的设备和/或同一设备上不同的线程分别执行。
在步骤S130中,在并发执行过程中,对于当前已完成的目标节点任务,获取已完成的目标节点任务的第一子节点任务,并发执行第一子节点任务和其他未完成的目标节点任务;第一子节点任务在工作流中单依赖于已完成的目标节点任务。
在并发执行过程中,不同节点任务的任务处理速度可以存在差异,例如由于不同节点任务的任务复杂程度或者处理设备、线程计算资源存在差异,从而造成并发执行过程中已完成的目标节点任务和未完成的目标节点任务同时存在,即多个目标节点任务中,一部分已完成,而另外一部分正在执行中。
在本实施例中,针对并发执行过程中已完成的目标节点任务,可以获取单依赖于已完成的目标节点任务的第一子节点任务。具体而言,依赖关系中的依赖可以划分为单依赖和多依赖,其中单依赖可以是指节点任务只依赖于一个父节点任务,多依赖可以是指节点任务依赖于至少两个父节点任务。由于第一子节点任务单依赖于目标节点任务,在目标节点任务已经完成的情况下,第一子节点任务即可执行,因此,在完成目标节点任务后,设备无需空闲地等待其他未完成的目标节点任务的完成,而是可以并发执行第一节点任务和其他未完成的目标节点任务。
上述任务处理方法,可以获取工作流中的多个目标节点任务,其中,工作流可以包括多个节点任务,多个目标节点任务为所述多个节点任务中相互独立的节点任务;进而可以并发执行多个目标节点任务,在并发执行过程中,对于当前已完成的目标节点任务,可以获取已完成的目标节点任务的第一子节点任务,并发执行第一子节点任务和其他未完成的目标节点任务;该第一子节点任务在工作流中单依赖于已完成的目标节点任务。本公开方案中,可以在并发执行的多个任务中存在未完成任务时,继续执行单依赖于已完成任务的子节点任务,避免令优先完成的任务等待同层其他任务的完成后才继续处理后续任务,减少任务处理过程中的等待时间,提高任务处理效率。
在一示例性实施例中,在步骤S120中,并发执行多个目标节点任务,可以包括如下步骤:
调用多个线程并发执行多个目标节点任务。
在具体实现中,可以预先设置多个线程,进而在确定出多个目标节点任务后,可以调用多个线程,通过多个线程并发地分别处理每个目标节点任务。具体例如,可以预先设置提供有多个线程的线程池,在确定出多个目标节点任务后,可以从线程池中调用与多个目标节点任务数量相同的多个线程,每个线程分别执行一个目标节点任务。
相应地,在步骤S130中,并发执行第一子节点任务和其他未完成的目标节点任务,可以包括如下步骤:
确定已完成的目标节点任务对应的线程为目标线程;基于目标线程执行第一子节点任务,以及基于其他线程继续执行其他未完成的目标节点任务。
其中,其他线程为多个线程中除目标线程以外的线程。
在确定出第一子节点任务后,可以将已完成的目标节点任务对应的线程作为目标线程,由于目标节点任务已经完成,目标线程当前未分配其他任务,并且目标节点任务是基于目标线程进行处理的,则目标线程当前可以具有目标节点任务的相关任务信息,例如任务结果,则可以基于目标线程执行第一子节点任务,同时基于其他线程继续执行其他未完成的目标节点任务。
在本实施例,在利用多个线程并发执行多个目标节点任务后,可以利用已完成的目标节点任务对应的线程继续执行第一子节点任务,避免线程的频繁切换,有效节省了计算资源。
在一示例性实施例中,基于目标线程执行第一子节点任务,可以包括如下步骤:
在已完成的目标节点任务执行结束后,保持目标线程的占用状态;将第一子节点任务确定为新的目标节点任务,并基于处于占用状态的目标线程继续执行新的目标节点任务。
实际应用中,在已完成的目标节点任务结束后,可以继续保持对目标线程的占用状态,然后,可以将第一子节点任务确定为新的目标节点任务,继续利用处于占用状态的目标线程执行新的目标节点任务。
而在并发执行第一子节点任务和其他未完成的目标节点任务之后,所述方法还可以包括如下步骤:
返回在并发执行过程中,对于当前已完成的目标节点任务,获取已完成的目标节点任务的第一子节点任务的步骤,直到各个目标节点任务完成。
在目标线程将第一子节点任务作为目标节点任务继续执行后,终端可以在并发执行过程中,继续执行确定当前是否存在已完成的目标节点任务,并获取已完成的目标节点任务的第一子节点任务,重复步骤上述步骤。换句话说,若被作为目标节点任务的第一子节点任务也具有相应的第一子节点任务,则可以继续利用同一目标线程处理,直到各个目标节点任务完成。
在本实施例中,通过将第一子节点任务确定为新的目标节点任务,基于处于占用状态的目标线程继续执行新的目标节点任务,并在并发执行过程中,继续获取已完成的目标节点任务的第一子节点任务并发处理,直到各个目标节点任务完成,能够在目标节点任务具有串联的多个节点任务时,使用同一线程依次执行后续串联的各个节点任务,也即本实施例将可以串行执行的节点任务打包到同一个线程执行,相对于层序遍历的方式可以显著减少线程的上下文切换,节省计算资源。
在一示例性实施例中,如图2所示,所述将第一子节点任务确定为目标节点任务,利用处于占用状态中的目标线程继续执行目标节点任务,可以包括如下步骤:
在步骤S210中,若第一子节点任务为多个,则将多个第一子节点任务确定为多个新的目标节点任务。
在具体实现中,目标节点任务的第一子节点任务可以是一个,也可以是多个。若已完成的目标节点任务的第一子节点任务为多个,则可以将多个第一子节点任务确定为多个新的目标节点任务。
在步骤S220中,额外调用目标数量个线程;目标数量与目标线程的数量之和,等于新的目标节点任务的数量。
在确定出多个新的目标节点任务后,可以额外调用目标数量个数的线程池,该目标数量可以基于多个新的目标节点任务的数量确定,即目标数量与目标线程的数量之和等于新的目标节点任务的数量,从而使得每个新的目标节点任务都可以具有一个对应的线程。
在步骤S230中,基于额外调用的线程和目标线程,并发执行多个新的目标节点任务。
在额外调用到目标数量个的线程后,则可以利用额外调用的线程和目标线程,并发执行多个新的目标节点任务。例如,每个新的目标节点任务都可以分配到对应的线程,如目标线程或额外调用的线程。
在本实施例中,可以根据新的目标节点任务的数量,额外调用目标数量个线程,并基于额外调用的线程和目标线程,并发执行多个新的目标节点任务,能够并发地执行多个第一子节点任务,既可以减少同层节点任务处理过程中的等待时间,又可以提高各个第一子节点任务的处理效率,从而提升工作流整体的任务处理效率和线程调用效率。
在一示例性实施例中,在步骤S120中,获取已完成的目标节点任务的第一子节点任务,可以包括如下步骤:
基于工作流的有向无环图,确定依赖于已完成的目标节点任务的各个子节点任务;将各个子节点任务中仅依赖一个父节点任务的子节点任务,确定为所述已完成的目标节点任务的第一子节点任务。
其中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(Directed Acyclic Graph)。有向无环图可以记录工作流中多个节点任务之间的依赖关系。
在本步骤中,可以获取工作流的有向无环图。在确定出已完成的目标节点任务后,可以基于有向无环图中记录的各节点任务之间的依赖关系,查找依赖于已完成的目标节点任务的各个子节点任务。
针对查找到的各个子节点任务,可以将各个子节点任务中仅依赖一个父节点任务的子节点任务,确定为已完成的目标节点任务的第一子节点任务。
在本实施例中,可以基于有向无环图中记录的节点任务之间的依赖关系,快速确定出单依赖于已完成的目标节点任务的第一子节点任务。
在一示例性实施例中,如图3所示,在步骤S110中,获取工作流中的多个目标节点任务,可以包括如下步骤:
在步骤S310中,获取工作流的有向无环图。
其中,有向无环图记录有所述工作流中多个节点任务之间的依赖关系。
在具体实现中,可以获取工作流和工作流对应的有向无环图,该有向无环图可以与工作流关联存储。
在步骤S320中,基于有向无环图中无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务,获取相互独立的多个目标节点任务。
在获取到有向无环图后,可以识别出有向无环图中无前序节点任务的节点任务以及前序节点任务当前已完成的节点任务,进而可以基于有向无环图中无前序节点任务的节点任务或前序节点任务当前已完成的节点任务中的至少一种,获取相互独立的多个目标节点任务。
具体而言,无前序节点任务的节点任务可以理解为该节点任务的触发执行无需依赖其他任何节点任务的任务结果;而前序节点任务当前已完成的节点任务,则可以确定当前已获取到执行该节点任务需要的输入信息,即前序节点任务的任务结果,此时该节点任务也无需继续等待其他节点任务的完成即可开始执行。
其中,可以同时从有向无环图中识别出无前序节点任务的节点任务以及前序节点任务当前已完成的节点任务,例如一个无前序节点任务的节点任务和一个前序节点任务当前已完成的节点任务,也可以是多个无前序节点任务的节点任务或者多个前序节点任务当前已完成的节点任务。无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务可以是有向无环图中同一层级的节点任务,可以是不同层级中的节点任务。
在本实施例中,可以基于有向无环图中无前序节点任务的节点任务或前序节点任务当前已完成的节点任务,快速获取到相互独立的多个目标节点任务,能够同时并发执行多个节点任务,提升工作流中的任务调度和处理效率。
在一示例性实施例中,有向无环图中的多个节点任务归属于至少两个层级,同一层级的节点任务相互独立,不同层级多个节点任务中的至少两个节点存在依赖关系,图4示出了一种有向无环图,该有向无环图可以划分为4个层级,依次为节点任务1所在的层级、节点任务2、3所在的层级、节点任务4所在的层级以及节点任务5所在的层级。
在步骤S320中,基于有向无环图中无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务,获取相互独立的多个目标节点任务
对于有向无环图中的目标层级,将归属于目标层级的多个节点任务中无前序节点任务的节点任务,和/或,前序节点任务已完成的节点任务,作为目标层级对应的多个目标节点任务。
其中,目标层级为有向无环图多个层级中的一层级。
在本步骤中,可以将在有向无环图中确定出一个层级,该层级可以是首个层级,也可以是首个层级以外的其他层级。进而可以在目标层级的多个节点任务中中,将无前序节点任务的节点任务和前序节点任务已完成的节点任务,作为该目标层级对应的多个目标节点任务。
在本实施例中,通过将归属于目标层级的无前序节点任务的节点任务和前序节点任务已完成的节点任务,作为目标层级对应的多个目标节点任务,能够在执行同层的多个目标节点任务时,串行地执行已完成目标节点任务的第一子节点任务,充分并发处理工作流中的节点任务,减少同层任务等待时间。
在一示例性实施例中,在获取工作流中的多个目标节点任务之后,还可以包括:
将多个目标节点任务添加到任务队列;任务队列用于存放待并发执行的节点任务。
具体实现中,可以设置任务队列,该任务队列可以存放待执行的节点任务,当线程需要执行节点任务时,可以从任务队列中快速获取,避免查找或等待。
在本实施例中,在获取到多个目标节点任务后,则可以将多个目标节点任务添加到任务队列中。
相应地,在步骤S120中,并发执行所述多个目标节点任务,可以包括:
并发执行任务队列中的各个节点任务。
在将多个目标节点任务添加到任务队列后,则可以并发地执行任务队列中的各个节点任务,被添加到任务执行队列中的各个节点任务可以是同层的节点任务,也可以是不同层级的节点任务。
在本实施例中,通过将多个目标节点任务添加到任务队列,然后并发执行任务队列中的各个节点任务,可以同时并发执行同层级或不同层级的多个目标节点任务,无需层级地依次执行有向无环图中的各个节点任务,避免同层任务必须结束才能执行下一层任务的情况,有效提升任务处理效率。
在一示例性实施例中,在步骤S120中,在并发执行过程中,对于当前已完成的目标节点任务,获取已完成的目标节点任务的第一子节点任务之后,还包括:
将第一子节点任务添加到任务队列,以并发执行任务队列中的第一子节点任务和其他未完成的目标节点任务。
具体地,在确定出第一子节点任务后,则可以将第一子节点任务添加到任务队列,从而并发执行任务队列中包括第一子节点任务和其他未完成的目标节点任务在内的各个节点任务。
在本实施例中,通过将第一子节点任务添加到任务队列,即使第一子节点任务与其他未完成的目标节点任务并非同一层级的任务,也可以并发执行各任务,下一层级的节点任务无需等待上一层级节点任务处理完成,能够并发执行归属于任意层级的第一子节点任务和其他未完成的目标节点任务,提高节点任务并发处理的灵活性。
在一示例性实施例中,所述方法还包括:
在步骤S510中,在并发执行过程中,对于当前已完成的目标节点任务,将已完成的目标节点任务的第二子节点任务添加到判定队列。
其中,第二子节点任务为已完成的目标节点任务的子节点任务中依赖于至少两个父节点任务的节点任务。
具体地,在并发执行过程中,可以获取已完成的目标节点任务的各个子节点任务。具体例如,可以获取工作流的有向无环图,并基于有向无环图中记录的各节点任务之间的依赖关系,查找依赖于已完成的目标节点任务的各个子节点任务。在查找到的各个子节点任务,可以将各个子节点任务中依赖于至少两个父节点任务的子节点任务,确定为已完成的目标节点任务的第二子节点任务。
由于第二子节点任务存在两个或两个以上的父节点任务,当前已完成的目标节点任务作为父节点任务之一,即使已经完成,由于还可能存在未完成的其他父节点任务,可能暂时未能执行,可以将第二子节点任务添加到判定队列。其中,判定队列可用于判断判定队列中的节点任务当前是否可以开始执行。
在步骤S520中,在判定判定队列中第二子节点任务的各个父节点任务完成时,将第二子节点任务转移到任务队列。
在实际应用中,可以依次判断评定队列中各个节点任务的前序节点任务是否已执行完毕。当判定第二子节点任务的各个父节点任务已完成时,可以将第二子节点任务转移到任务队列,以并发地执行第二子节点任务。
在本实施例中,通过将已完成的目标节点任务的第二子节点任务添加到判定队列,并在判定判定队列中第二子节点任务的各个父节点任务完成时,将第二子节点任务转移到任务队列,一方面,可以在目标节点任务结束后立即将可能可执行的第二节点任务接入判定队列,避免同层任务处理完毕后再作处理,减少等待时间,另一方面,通过将第二子节点任务转移到任务队列,能够及时触发对第二子节点任务的并发处理。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本公开实施例加以示例性说明,但应当理解的是,本公开实施例并不限于此。
如图5所示,可以将工作流中节点任务的处理过程划分为三个阶段,分别为调度阶段、执行阶段和回传阶段。
在调度阶段中,可以先初始化判定队列和任务队列,并在获取到工作流的有向无环图后,遍历有向无环图中的各个节点任务,将无前序节点任务的节点任务添加到判定队列中,并按照预设的时间间隔循环地对判定队列中各节点任务的状态进行识别。
具体而言,在每次遍历判定队列时,可以先判断有向无环图中的各个节点任务是否都已执行完毕。若是,则可以确定当前工作流已经处理完毕,得到工作流对应的业务任务的任务结果,可以结束该业务任务;若否,则可以确定当前仍未获取到最终任务结果,进而可以识别判定队列中节点任务的状态,判断队列中的节点任务是否无前序节点任务或者该节点任务的所有前序节点任务都执行完毕。
若确定判定队列中的节点任务无前序节点任务或者该节点任务的所有前序节点任务都执行完毕,则可以将节点任务作为目标节点任务,从判定队列转移到任务队列中。若确定判定队列中的节点任务存在未执行完毕的前序节点任务,则可以等待当前节点任务的前序节点任务完成,并继续识别判定队列中下一个节点任务的任务状态。
在执行阶段中,可以通过多个线程并发地执行任务队列中的各个目标节点任务,针对各个目标节点任务,可以在目标节点任务执行完成后,获取依赖于已完成的目标节点任务的各个子节点任务,并判断子节点任务是否仅依赖于一个父节点任务。
若是,则可以确定该子节点任务为第一子节点任务,并且可以将第一子节点任务添加到任务队列中,保持其父节点任务(即已完成的目标节点任务)的线程的占用状态,继续使用该线程处理第一子节点任务,若目标节点任务存在连续的多个单依赖节点任务(也可以称为单亲节点任务),可以继续利用目标节点任务的同一个线程串行执行多个串联的单依赖节点任务。可以理解,通过利用同一线程串行地执行目标节点任务和目标节点任务的第一子节点任务,可以减少线程的上下文切换,无需将线程归还到线程池后又重新申请和调用,有效节省设备的计算资源。
当然,若目标节点任务存在多个第一子节点任务,则除了继续使用目标节点任务原有的线程串行执行其中的一个第一子节点任务外,还可以调用新的线程对其他第一子节点任务进行处理,通过并发执行多个第一子节点任务,可以同层节点任务等待另一节点任务完成的时间,充分利用该时间执行单依赖的子节点任务,提升整体调用效率。
例如,图4所示的有向无环图中,针对其中的节点任务1、2、3、4、5,若按照传统的处理方式,将会按照1→(2,3)→4→5的顺序执行,而本公开则可以按照1→((2→4),3)→5的顺序执行,其中“,”表示连接的多个节点任务为可以并发执行的节点任务。又如,图6所示的有向无环图中,节点任务1、2、3、4、5、6、7可以按照1→(((2→4→6),(5→7)),3)的顺序执行。
若确定子节点任务依赖于多个父节点任务,则可以继续将该子节点任务确定为第二子节点任务,并将第二子节点任务添加到判定队列中。
重复执行上述步骤,直到目标节点任务没有第一子节点任务(如节点任务没有子节点任务或者查找到的子节点任务为第二子节点任务),则可以确定当前查找到的目标节点任务执行完毕。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的任务处理方法的任务处理装置。
图7是根据一示例性实施例示出的一种任务处理装置框图。参照图7,该装置包括目标节点任务获取单元701,并发处理单元702和第一子节点任务确定单元703。
目标节点任务获取单元701,被配置为执行获取工作流中的多个目标节点任务;所述工作流包括多个节点任务,所述多个目标节点任务为所述多个节点任务中相互独立的节点任务;
并发处理单元702,被配置为执行并发执行所述多个目标节点任务;
第一子节点任务确定单元703,被配置为执行在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务,并发执行所述第一子节点任务和其他未完成的目标节点任务;所述第一子节点任务在所述工作流中单依赖于所述已完成的目标节点任务。
在一示例性实施例中,所述并发处理单元702,被配置为执行:
调用多个线程并发执行所述多个目标节点任务;
所述第一子节点任务确定单元703,包括:
目标线程确定模块,被配置为执行确定所述已完成的目标节点任务对应的线程为目标线程;
第一子节点任务并发执行模块,被配置为执行基于所述目标线程执行所述第一子节点任务,以及基于其他线程继续执行其他未完成的目标节点任务,所述其他线程为所述多个线程中除所述目标线程以外的线程。
在一示例性实施例中,所述第一子节点任务并发执行模块,被配置为执行:
在所述已完成的目标节点任务执行结束后,保持所述目标线程的占用状态;
将所述第一子节点任务确定为新的目标节点任务,并基于处于占用状态的所述目标线程继续执行所述新的目标节点任务;
所述第一子节点任务确定单元703,还被配置为执行:
返回在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务的步骤,直到各个目标节点任务完成。
在一示例性实施例中,所述第一子节点任务并发执行模块,被配置为执行:
若所述第一子节点任务为多个,则将多个第一子节点任务确定为多个新的目标节点任务;
额外调用目标数量个线程;所述目标数量与所述目标线程的数量之和,等于所述新的目标节点任务的数量;
基于额外调用的线程和所述目标线程,并发执行多个新的目标节点任务。
在一示例性实施例中,所述第一子节点任务确定单元703,被配置为执行:
基于所述工作流的有向无环图,确定依赖于所述已完成的目标节点任务的各个子节点任务;所述有向无环图记录有所述工作流中多个节点任务之间的依赖关系;
将各个子节点任务中仅依赖一个父节点任务的子节点任务,确定为所述已完成的目标节点任务的第一子节点任务。
在一示例性实施例中,所述目标节点任务获取单元701,被配置为执行:
获取工作流的有向无环图;所述有向无环图记录有所述工作流中多个节点任务之间的依赖关系;
基于所述有向无环图中无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务,获取相互独立的多个目标节点任务。
在一示例性实施例中,所述有向无环图中的多个节点任务归属于至少两个层级,同一层级的节点任务相互独立,不同层级多个节点任务中的至少两个节点存在依赖关系;所述目标节点任务获取单元701,被配置为执行:
对于所述有向无环图中的目标层级,将归属于所述目标层级的多个节点任务中无前序节点任务的节点任务,和/或,前序节点任务已完成的节点任务,作为所述目标层级对应的多个目标节点任务;所述目标层级为所述有向无环图多个层级中的一层级。
在一示例性实施例中,所述装置还包括:
任务队列调度单元,被配置为执行将所述多个目标节点任务添加到任务队列;所述任务队列用于存放待并发执行的节点任务;
所述并发处理单元702,被配置为执行:
并发执行所述任务队列中的各个节点任务。
在一示例性实施例中,所述第一子节点任务确定单元703,还被配置为执行:
将所述第一子节点任务添加到所述任务队列,以并发执行所述任务队列中的第一子节点任务和其他未完成的目标节点任务。
在一示例性实施例中,所述装置还包括:
判定队列调度单元,被配置为执行在并发执行过程中,对于当前已完成的目标节点任务,将所述已完成的目标节点任务的第二子节点任务添加到判定队列;
第二子节点任务转移单元,被配置为执行在判定所述判定队列中所述第二子节点任务的各个父节点任务完成时,将所述第二子节点任务转移到所述任务队列;
所述第二子节点任务为所述已完成的目标节点任务的子节点任务中依赖于至少两个父节点任务的节点任务。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
上述任务处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图8是根据一示例性实施例示出的一种用于实现一种任务处理方法的电子设备800的框图。例如,电子设备800可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
参照图8,电子设备800可以包括以下一个或多个组件:处理组件802、存储器804、电源组件806、多媒体组件808、音频组件810、输入/输出(I/O)的接口812、传感器组件814以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800组件的位置改变,用户与电子设备800接触的存在或不存在,设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备800的处理器820执行以完成上述方法。
图9是根据一示例性实施例示出的一种用于实现一种任务处理方法的电子设备900的框图。例如,电子设备900可以为服务器。参照图9,电子设备900包括处理组件920,其进一步包括一个或多个处理器,以及由存储器922所代表的存储器资源,用于存储可由处理组件920的执行的指令,例如应用程序。存储器922中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件920被配置为执行指令,以执行上述方法。
电子设备900还可以包括:电源组件924被配置为执行电子设备900的电源管理,有线或无线网络接口926被配置为将电子设备900连接到网络,和输入输出(I/O)接口928。电子设备900可以操作基于存储在存储器922的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器922,上述指令可由电子设备900的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备900的处理器执行以完成上述方法。
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (13)

1.一种任务处理方法,其特征在于,包括:
获取工作流中的多个目标节点任务;所述工作流包括多个节点任务,所述多个目标节点任务为所述多个节点任务中相互独立的节点任务;
并发执行所述多个目标节点任务;
在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务,并发执行所述第一子节点任务和其他未完成的目标节点任务;所述第一子节点任务在所述工作流中单依赖于所述已完成的目标节点任务。
2.根据权利要求1所述的方法,其特征在于,所述并发执行所述多个目标节点任务,包括:
调用多个线程并发执行所述多个目标节点任务;
所述并发执行所述第一子节点任务和其他未完成的目标节点任务,包括:
确定所述已完成的目标节点任务对应的线程为目标线程;
基于所述目标线程执行所述第一子节点任务,以及基于其他线程继续执行其他未完成的目标节点任务,所述其他线程为所述多个线程中除所述目标线程以外的线程。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标线程执行所述第一子节点任务,包括:
在所述已完成的目标节点任务执行结束后,保持所述目标线程的占用状态;
将所述第一子节点任务确定为新的目标节点任务,并基于处于占用状态的所述目标线程继续执行所述新的目标节点任务;
所述并发执行所述第一子节点任务和其他未完成的目标节点任务之后,还包括:
返回在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务的步骤,直到各个目标节点任务完成。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一子节点任务确定为目标节点任务,利用处于占用状态中的所述目标线程继续执行所述目标节点任务,包括:
若所述第一子节点任务为多个,则将多个第一子节点任务确定为多个新的目标节点任务;
额外调用目标数量个线程;所述目标数量与所述目标线程的数量之和,等于所述新的目标节点任务的数量;
基于额外调用的线程和所述目标线程,并发执行多个新的目标节点任务。
5.根据权利要求1所述的方法,其特征在于,所述获取所述已完成的目标节点任务的第一子节点任务,包括:
基于所述工作流的有向无环图,确定依赖于所述已完成的目标节点任务的各个子节点任务;所述有向无环图记录有所述工作流中多个节点任务之间的依赖关系;
将各个子节点任务中仅依赖一个父节点任务的子节点任务,确定为所述已完成的目标节点任务的第一子节点任务。
6.根据权利要求1所述的方法,其特征在于,所述获取工作流中的多个目标节点任务,包括:
获取工作流的有向无环图;所述有向无环图记录有所述工作流中多个节点任务之间的依赖关系;
基于所述有向无环图中无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务,获取相互独立的多个目标节点任务。
7.根据权利要求6所述的方法,其特征在于,所述有向无环图中的多个节点任务归属于至少两个层级,同一层级的节点任务相互独立,不同层级多个节点任务中的至少两个节点存在依赖关系;所述基于所述有向无环图中无前序节点任务的节点任务,和/或,前序节点任务当前已完成的节点任务,获取相互独立的多个目标节点任务,包括:
对于所述有向无环图中的目标层级,将归属于所述目标层级的多个节点任务中无前序节点任务的节点任务,和/或,前序节点任务已完成的节点任务,作为所述目标层级对应的多个目标节点任务;所述目标层级为所述有向无环图多个层级中的一层级。
8.根据权利要求6所述的方法,其特征在于,在所述获取工作流中的多个目标节点任务之后,还包括:
将所述多个目标节点任务添加到任务队列;所述任务队列用于存放待并发执行的节点任务;
所述并发执行所述多个目标节点任务,包括:
并发执行所述任务队列中的各个节点任务。
9.根据权利要求8所述的方法,其特征在于,所述在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务之后,还包括:
将所述第一子节点任务添加到所述任务队列,以并发执行所述任务队列中的第一子节点任务和其他未完成的目标节点任务。
10.根据权利要求8所述的方法,其特征在于,还包括:
在并发执行过程中,对于当前已完成的目标节点任务,将所述已完成的目标节点任务的第二子节点任务添加到判定队列;
在判定所述判定队列中所述第二子节点任务的各个父节点任务完成时,将所述第二子节点任务转移到所述任务队列;
所述第二子节点任务为所述已完成的目标节点任务的子节点任务中依赖于至少两个父节点任务的节点任务。
11.一种任务处理装置,其特征在于,包括:
目标节点任务获取单元,被配置为执行获取工作流中的多个目标节点任务;所述工作流包括多个节点任务,所述多个目标节点任务为所述多个节点任务中相互独立的节点任务;
并发处理单元,被配置为执行并发执行所述多个目标节点任务;
第一子节点任务确定单元,被配置为执行在并发执行过程中,对于当前已完成的目标节点任务,获取所述已完成的目标节点任务的第一子节点任务,并发执行所述第一子节点任务和其他未完成的目标节点任务;所述第一子节点任务在所述工作流中单依赖于所述已完成的目标节点任务。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至10中任一项所述的任务处理方法。
13.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至10中任一项所述的任务处理方法。
CN202310012740.6A 2023-01-05 2023-01-05 任务处理方法、装置、电子设备和存储介质 Pending CN116048757A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310012740.6A CN116048757A (zh) 2023-01-05 2023-01-05 任务处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310012740.6A CN116048757A (zh) 2023-01-05 2023-01-05 任务处理方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116048757A true CN116048757A (zh) 2023-05-02

Family

ID=86126916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310012740.6A Pending CN116048757A (zh) 2023-01-05 2023-01-05 任务处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116048757A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737307A (zh) * 2023-08-16 2023-09-12 北京淳中科技股份有限公司 一种界面显示方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737307A (zh) * 2023-08-16 2023-09-12 北京淳中科技股份有限公司 一种界面显示方法、装置、电子设备及存储介质
CN116737307B (zh) * 2023-08-16 2023-12-01 北京淳中科技股份有限公司 一种界面显示方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN105955765B (zh) 应用预加载方法及装置
RU2705459C2 (ru) Способ показа темы и соответствующее устройство
CN112748972B (zh) 多任务界面管理方法及电子设备
US20150333971A1 (en) Method and device for managing processes of application program
CN107370772B (zh) 账号登录方法、装置及计算机可读存储介质
CN105930213B (zh) 应用运行方法及装置
CN107729098B (zh) 用户界面显示方法及装置
CN116048757A (zh) 任务处理方法、装置、电子设备和存储介质
CN104951522B (zh) 一种进行搜索的方法和装置
CN111382161B (zh) 状态数据处理方法、装置、电子设备及存储介质
CN107463419B (zh) 应用重启方法、装置及计算机可读存储介质
CN111241134B (zh) 一种数据处理方法及装置
CN111259675B (zh) 基于神经网络计算的方法和装置
CN113268325A (zh) 一种调度任务的方法、装置及存储介质
CN114066370A (zh) 库存服务调用方法、装置、设备、存储介质及程序产品
CN113360254A (zh) 任务调度方法及系统
CN113378022A (zh) 一种站内搜索平台、搜索方法和相关装置
CN111625251B (zh) 一种处理应用实例的方法及装置
CN115174504B (zh) 一种界面显示方法、终端设备和存储介质
CN111625536B (zh) 一种数据访问方法及装置
CN112506628B (zh) 代理程序的管理方法、装置、计算机设备及存储介质
CN113163154B (zh) 信息处理方法、装置和电子设备
CN110119471B (zh) 一种搜索结果一致性的检查方法及装置
CN110311968B (zh) 流式加载文件的方法、装置及智能设备
CN115303218B (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