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

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

Info

Publication number
CN113176931B
CN113176931B CN202110343053.3A CN202110343053A CN113176931B CN 113176931 B CN113176931 B CN 113176931B CN 202110343053 A CN202110343053 A CN 202110343053A CN 113176931 B CN113176931 B CN 113176931B
Authority
CN
China
Prior art keywords
task
identifier
package
execution sequence
execution
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.)
Active
Application number
CN202110343053.3A
Other languages
English (en)
Other versions
CN113176931A (zh
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.)
Neusoft Cloud Technology Co ltd
Neusoft Corp
Original Assignee
Neusoft Cloud Technology Co ltd
Neusoft Corp
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 Neusoft Cloud Technology Co ltd, Neusoft Corp filed Critical Neusoft Cloud Technology Co ltd
Priority to CN202110343053.3A priority Critical patent/CN113176931B/zh
Publication of CN113176931A publication Critical patent/CN113176931A/zh
Application granted granted Critical
Publication of CN113176931B publication Critical patent/CN113176931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及一种任务流处理方法、装置、存储介质及电子设备,所述方法包括根据打包编码中各打包函数的先后顺序,执行打包函数,其中,每一打包函数的调用参数为任务流中的至少一个任务的任务标识,所述打包函数用于将作为调用参数的任务标识打包为任务包,所述任务包包括执行序号以及任务标识,所述执行序号是根据所述打包函数的执行顺序确定的;根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务,无需人工编写各个任务之间的具有先后或并行执行关系的执行代码,减小了代码编写的复杂度。

Description

任务流处理方法、装置、存储介质及电子设备
技术领域
本公开涉及电子信息技术,具体地,涉及一种任务流处理方法、装置、存储介质及电子设备。
背景技术
业务通常是由多个独立的任务组成,多个任务间存在执行的先后或并行关系,多个任务编排而成的任务组即是一个任务流。在后台执行业务之前,需要对该任务流的任务之间的先后或并行执行关系进行人工编码,得到具有先后或并行执行关系的执行代码,后台运行人工编写的执行代码,即可完成任务流中各任务的执行。
由于不同的任务流的先后或并行执行关系是不同的。因此,针对不同任务流,均需要手动编写任务流包括的任务之间的具有先后或并行执行关系的执行代码,由此导致编码复杂度较高。
发明内容
本公开的目的是提供一种任务流处理方法、装置、存储介质及电子设备,无需手动编写任务之间的执行代码,降低了编码复杂度。
为了实现上述目的,第一方面,本公开提供一种任务流处理方法,所述方法包括:
根据打包编码中各打包函数的先后顺序,执行打包函数,其中,每一打包函数的调用参数为任务流中的至少一个任务的任务标识,所述打包函数用于将作为调用参数的任务标识打包为任务包,所述任务包包括执行序号以及任务标识,所述执行序号是根据所述打包函数的执行顺序确定的;
根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务。
可选地,针对每一所述打包函数,该打包函数通过以下方式将作为该打包函数的调用参数的任务标识打包为任务包:
创建一任务包;
在任务缓存为空的情况下,将初始执行序号作为本次创建的任务包的执行序号;
在所述任务缓存不为空的情况下,将所述任务缓存中上一存储的任务对应的任务包的执行序号与预设数值的和作为本次创建的任务包的执行序号;
所述打包函数还用于:将作为调用函数的任务标识所对应的任务存储到所述任务缓存中;
所述根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务,包括:根据所述任务包的执行序号,依次根据每一所述任务包中的任务标识从所述任务缓存中取出任务进行执行。
可选地,所述任务流包括并行分支,所述并行分支上的多个任务对应的任务标识用于作为同一调用参数调用所述打包函数;
所述打包函数还用于:在该打包函数的调用参数包括多个任务的任务标识的情况下,针对每一所述分支中第一个任务标识之后的每一任务标识,设置对应该任务标识的前置任务标识;并,
针对每一所述分支中最后一个任务标识之前的每一任务标识,设置对应该任务标识的后置任务标识。
可选地,所述根据所述任务包的执行序号,依次根据每一所述任务包中的任务标识从所述任务缓存中取出任务进行执行,包括:
在执行到包括多个任务标识的任务包时,根据所述前置任务标识和所述后置任务标识确定所述多个任务标识对应的任务之间的任务执行顺序,并根据所述任务执行顺序依次从所述任务缓存中取出所述多个任务进行执行。
可选地,所述依次执行每个所述任务包括的任务标识对应的任务,包括:
通过对应所述任务流的任务消息处理器,将所述任务包中的任务标识对应的任务按照所述任务包的执行序号放入任务管理器的运行任务池,所述任务管理器用于执行所述运行任务池中的任务,并对所述运行任务池中的任务的执行状态进行监控,并在监控到所述运行任务池中的任务运行完成后通知所述任务消息处理器;
其中,所述任务消息处理器是在接收到所述任务管理器的所述通知后,将下一任务包中的任务标识对应的任务加入所述运行任务池中。
第二方面,本公开提供一种任务流处理装置,所述装置包括:
打包模块,用于根据打包编码中各打包函数的先后顺序,执行打包函数,其中,每一打包函数的调用参数为任务流中的至少一个任务的任务标识,所述打包函数用于将作为调用参数的任务标识打包为任务包,所述任务包包括执行序号以及任务标识,所述执行序号是根据所述打包函数的执行顺序确定的;
执行模块,用于根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务。
可选地,针对每一所述打包函数,该打包函数通过以下方式将作为该打包函数的调用参数的任务标识打包为任务包:
创建一任务包;
在任务缓存为空的情况下,将初始执行序号作为本次创建的任务包的执行序号;
在所述任务缓存不为空的情况下,将所述任务缓存中上一存储的任务对应的任务包的执行序号与预设数值的和作为本次创建的任务包的执行序号;
所述打包函数还用于:将作为调用函数的任务标识所对应的任务存储到所述任务缓存中;
所述执行模块具体用于根据所述任务包的执行序号,依次根据每一所述任务包中的任务标识从所述任务缓存中取出任务进行执行。
可选地,所述任务流包括并行分支,所述并行分支上的多个任务对应的任务标识用于作为同一调用参数调用所述打包函数;
所述打包函数还用于:在该打包函数的调用参数包括多个任务的任务标识的情况下,针对每一所述分支中第一个任务标识之后的每一任务标识,设置对应该任务标识的前置任务标识;并,
针对每一所述分支中最后一个任务标识之前的每一任务标识,设置对应该任务标识的后置任务标识。
第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
第四方面,本公开提供一种一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
通过上述技术方案,利用打包代码中各打包函数,打包函数用于将作为调用参数的任务标识打包为任务包,任务包包括执行序号以及任务标识,执行序号是根据打包函数的执行顺序确定的,如此,针对不同的任务流,只需更改打包编码,即可利用各打包函数对任务流中的任务所对应的任务标识实现自动打包并设置每个任务包的执行序号,在执行任务时,按照任务包的执行序号对各任务包中包括的任务标识对应的任务执行即可,无需人工针对不同的任务流编写各个任务之间的具有先后或并行执行关系的执行代码,减小了代码编写的复杂度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开一示例性实施例示出的一种任务流处理方法的流程图。
图2是根据本公开一示例性实施例示出的一种任务流示意图。
图3是根据本公开一示例性实施例示出的另一种任务流示意图。
图4是根据本公开一示例性实施例示出的一种打包函数的实施流程图。
图5是根据本公开一示例性实施例示出的一种任务流处理方法的另一示意图。
图6是根据一示例性实施例示出的一种任务流处理装置的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在处理业务时,当业务逻辑处理比较复杂时,可以分为多个独立的且通常是可复用的逻辑处理单元,我们把这些处理单元称为任务。多个任务编排而成的任务组即是一个任务流,多个任务间存在执行的先后或并行关系。在处理业务之前,需要对该任务流的任务之间的先后或并行关系进行编码,得到具有先后或并行执行关系的执行代码,后台运行编写的执行代码,即可完成任务流中各任务的执行。但是相关技术中通常是利用人工对每种任务流包括的任务之间的先后或并行关系进行编码,由此导致编码复杂度较高,特别是包括并行分支等执行关系较为复杂的任务流。
有鉴于此,本公开提供一种任务流处理方法、装置、存储介质及电子设备,针对不同的任务流,均可以利用打包代码中各打包函数对任务流中的任务所对应的任务标识实现自动打包并设置每个任务包的执行序号,在执行任务时,按照任务包的执行序号对各任务包中包括的任务标识对应的任务执行即可,无需人工针对不同任务流编写各个任务之间的具有先后或并行执行关系的执行代码,减小了代码编写的复杂度。
图1是根据本公开一示例性实施例示出的一种任务流处理方法的流程图。参照图1,该任务流处理方法可以包括以下步骤:
步骤101,根据打包编码中各打包函数的先后顺序,执行打包函数,其中,每一打包函数的调用参数为任务流中的至少一个任务的任务标识,打包函数用于将作为调用参数的任务标识打包为任务包,任务包包括执行序号以及任务标识,执行序号是根据打包函数的执行顺序确定的。
步骤102,根据任务包的执行序号,依次执行每个任务包包括的任务标识对应的任务。
示例地,本公开实施例提供的任务流处理方法可以用于自动化监控运维领域的业务处理中。
示例地,图2是根据本公开一示例性实施例示出的一种任务流示意图。在图2中,按照图2所示箭头方向执行每个任务。其中,任务1的任务标识为task1,任务2的任务标识为task2,任务3的任务标识为task3,任务4的任务标识为task4,任务5的任务标识为task5,任务6的任务标识为task6,任务7的任务标识为task7,以下结合图2所示的任务流作为任务流实例1对本实施例进行进一步解释说明。
示例地,针对图2所示的任务流,打包编码可以为:
任务流flow=new任务流(“任务流实例1”)
任务task1=new任务(“task1”)
任务task2=new任务(“task2”)
任务task3=new任务(“task3”)
任务task4=new任务(“task4”)
任务task5=new任务(“task5”)
任务task6=new任务(“task6”)
列表list=new列表()
list.add(task3).add(task4).add(task5).add(task6)
任务task7=new任务(“task7”)
flow.add(task1)
flow.add(task2)
flow.addParallelTasks(list)
flow.add(task7)
在上述打包编码中,flow.add()和flow.addParallelTasks()均为打包函数,其中,flow.add()是针对调用参数只包括一个任务标识的打包函数,flow.addParallelTasks()是针对调用参数包括多个任务标识的打包函数。具体的,task1为flow.add(task1)的调用参数;task2为flow.add(task2)的调用参数;list为flow.addParallelTasks(list)的调用参数;task7为flow.add(task7)的调用参数。
应当理解的是,打包编码中各个打包函数的执行按照各个打包函数在打包编码中的编写顺序执行。因此,在上述打包编码中,各打包函数的执行顺序依次为flow.add(task1)、flow.add(task2)、flow.addParallelTasks(list)、flow.add(task7)。
上述flow.add(task1)、flow.add(task2)、flow.addParallelTasks(list)、flow.add(task7)打包函数依次得到的任务包为任务包1、任务包2、任务包3和任务包4,任务包1里包括task1,任务包2包括task2,任务包3包括task3、task4、task5、task6,任务包4包括task7。由于任务包的执行序号是根据打包函数的执行顺序确定的。因此,根据个打包函数的执行顺序可得,任务包1的执行序号位于任务包2的执行序号之前,任务包2的执行序号位于任务包3的执行序号之前,任务包3的执行序号位于任务包4的执行序号之前。也就是说执行各任务包的顺序依次为:任务包1、任务包2、任务包3和任务包4。
应当说明的是,打包编码由人工进行编辑,针对不同的任务流,只需要人工更改打包编码即可。
示例地,图3是根据本公开一示例性实施例示出的另一种任务流示意图。图3所示的任务流为任务流实施例2,针对图3,只需要人工将上述图2所示的打包编码进行简单的修改,则可以得到图3所示任务流对应的各具有先后执行顺序的任务包。示例地,图3所示任务流对应的打包编码可以为:
任务流flow=new任务流(“任务流实例2”)
任务task1=new任务(“task1”)
列表list=new列表()
list.add(task2).add(task3).add(task4)
任务task5=new任务(“task5”)
flow.add(task1)
flow.addParallelTasks(list)
flow.add(task5)
由上述可知,只需要对打包编码进行简单的变换,即可实现多个任务间按照多个任务间的先后或并行关系执行,有效地降低了编码复杂度和难度,尤其是针对任务逻辑复杂的业务。
采用上述方式,只需要人工编辑打包编码,设置各打包函数的调用参数,则可以利用打包函数自动生成具有先后执行顺序的任务包,并按照各任务包的执行顺序执行各任务包包括的任务标识对应的任务即可以实现业务的处理,无需人工编写各个任务之间的具有先后或并行执行关系的执行代码,减小了代码编写的复杂度。
在可能的方式中,打包函数还用于:将作为调用函数的任务标识所对应的任务存储到所述任务缓存中。相应地,针对每一打包函数,该打包函数通过以下方式将作为该打包函数的调用参数的任务标识打包为任务包:
创建一任务包。
在任务缓存为空的情况下,将初始执行序号作为本次创建的任务包的执行序号。
在所述任务缓存不为空的情况下,将所述任务缓存中上一存储的任务对应的任务包的执行序号与预设数值的和作为本次创建的任务包的执行序号。
示例地,图4是根据本公开一示例性实施例示出的一种打包函数的实施流程图。参照图4,包括以下步骤:
步骤401,创建一任务包。
步骤402,判断任务缓存是否为空。
步骤403,将初始执行序号作为本次创建的任务包的执行序号。
步骤404,将任务缓存中上一存储的任务对应的任务包的执行序号与预设数值的和作为本次创建的任务包的执行序号。
步骤405,将作为调用函数的任务标识所对应的任务存储到任务缓存中。
步骤406,将作为调用函数的任务标识存储到本次创建的任务包中
在本公开中,任务缓存是用于存储任务标识对应的任务的。
示例地,初始执行序号可以是预设的序号,例如,0。且预设数值是大于0的自然数,如此,便可保证后一打包函数打包得到的任务包的执行序号是大于前一打包函数打包得到的任务包的执行序号。
在将作为调用函数的任务标识所对应的任务存储到任务缓存中的情况下,图1所述的步骤102可以包括:根据任务包的执行序号,依次根据每一任务包中的任务标识从任务缓存中取出任务进行执行。
在可能的方式中,任务流包括并行分支,并行分支上的多个任务对应的任务标识用于作为同一调用参数调用所述打包函数。打包函数还用于:在该打包函数的调用参数包括多个任务的任务标识的情况下,针对调用参数中第一个任务标识之后的每一任务标识,设置对应该任务标识的前置任务标识;并针对调用参数中最后一个任务标识之前的每一任务标识,设置对应该任务标识的后置任务标识。
示例地,以图2所示的任务流为例,任务3与任务4和任务5与任务6为并行的任务分支,任务3、任务4、任务5和任务6的任务标识作为同一调用参数调用打包函数。
针对图2所示的任务分支情况,任务3与任务4为同一分支,在该分支中,任务3的任务标识作为该分支中的第一个任务标识,所以需要对任务4的任务标识设置前置任务标识,且任务4的任务标识对应的前置任务标识应当为任务3的任务标识;任务4的任务标识作为该分支中最后一个任务标识,所以需要对任务3的任务标识设置后置任务标识,且任务3的任务标识对应的后置任务标识应当为任务4的任务标识。
任务5与任务6为同一分支,在该分支中,任务5的任务标识作为该分支中的第一个任务标识,所以需要对任务6的任务标识设置前置任务标识,且任务6的任务标识对应的前置任务标识应当为任务5的任务标识;任务6的任务标识作为该分支中最后一个任务标识,所以需要对任务5的任务标识设置后置任务标识,且任务5的任务标识对应的后置任务标识应当为任务6的任务标识。
在设置了前置任务标识和后置任务标识的情况下,所述根据任务包的执行序号,依次根据每一任务包中的任务标识从任务缓存中取出任务进行执行可以包括:在执行到包括多个任务标识的任务包时,根据前置任务标识和后置任务标识确定多个任务标识对应的任务之间的任务执行顺序,并根据任务执行顺序依次从任务缓存中取出多个任务进行执行。以下将以图2所示的任务3与任务4和任务5与任务6为例,对执行多个任务标识的任务包进行进一步解释说明。
若任务标识未设置有后置任务标识,表征该任务标识对应的任务是在分支中处于第一执行顺序的。因此,在执行该任务包时,首先,可以将没有前置任务标识的task3和task4分别对应的任务3和任务5从任务缓存中取出,并行执行任务3和任务5。
接着,在任务3或或者任务5执行完成后,获取在该任务包中执行完成的任务的任务标识的后置任务标识。以任务3执行完成为例,此时则获取任务3的任务标识的后置任务标识task4对应的任务4,并执行任务4。
采用上述方式,利用后置任务标识和后置任务标识表征在同一个任务包中包括的任务标识对应的多个任务之间的执行顺序,便于处理包括多个任务标识的任务包所对应的任务。
在可能的方式中,依次执行每个任务包括的任务标识对应的任务可以包括:通过对应任务流的任务消息处理器,将任务包中的任务标识对应的任务按照任务包的执行序号放入任务管理器的运行任务池,任务管理器用于执行运行任务池中的任务,并对运行任务池中的任务的执行状态进行监控,并在监控到运行任务池中的任务运行完成后通知任务消息处理器。以下结合图2和图5对本实施例中每个任务包包括的任务标识对应的任务的执行过程进行进一步解释说明。
根据上述打包编码对图2所示的任务流的打包情况,共打包得到四个任务包,包括任务包1、任务包2、任务包3和任务包4,且执行顺序依次为:任务包1、任务包2、任务包3和任务包4。针对该任务流的任务执行过程为:
任务消息处理器首先将任务包1中的任务标识task1所对应的任务1放入任务管理器的运行任务池,并使任务管理器执行运行任务池中的任务1,任务管理器监控该任务1的执行状态,并在监控到该任务1的运行完成时通知任务消息处理器,任务消息处理器在收到通知后,将下一任务包(任务包2)中的任务标识task2对应的任务2加入所述运行任务池中,直至所有任务包的任务标识对应的任务被执行完成。
另外,考虑到在需要同时运行多种任务流的情况下,由于运行任务池的存储空间有限,并不能同时存储大量任务流的任务包。且在遇到任务包包括多个任务标识时,若同时将该任务包包括多个任务标识对应的任务存入到运行任务池,由于多个任务标识对应的任务之间存在先后顺序,也并不能实现同时执行,如此,这种提前将不会立马执行的任务存储到运行任务池中的方式会占据运行任务池的存储空间,以导致无法存储其他任务流中可立马执行的任务,进而导致其他任务流的执行效率降低。因此,在可能的方式中,在针对任务包中有多个任务标识的情况下,还可以采用以下方式将多个任务标识对应的任务放入运行任务池。
具体的,任务消息处理器先将该任务包中的处于第一执行顺序的任务标识对应的任务放入运行任务池中,并监控运行任务池中的任务的执行状态,并在监控到运行任务池中的任务运行完成后通知任务消息处理器,并在监控到任务运行完成后,将该任务从运行任务池中删除。该任务消息处理器还用于在接收到任务管理器的该通知后,将该通知对应的任务的任务标识的下一任务标识所对应的任务加入运行任务池中。以图2所示的任务流对应的任务包3为例进行说明。
具体来讲,通过对应任务流的任务消息处理器,将所述任务包中的处于第一执行顺序的任务标识(包括task3和task4)对应的任务(包括任务3和任务4)放入到运行任务池中,任务管理器对任务3和任务4的执行状态进行监控,若在监控到任务3任务运行完成后通知任务消息处理器,该任务消息处理器可以根据任务3的任务标识task3的后置任务标识,将该后置任务标识对应的任务标识(即task4)所对应的任务(即任务4)放入运行任务池中,并删除任务3。若在监控到任务5任务运行完成后通知任务消息处理器,该任务消息处理器可以根据任务5的任务标识task5的后置任务标识,将该后置任务标识对应的任务标识(即task6)所对应的任务(即任务6)放入运行任务池中,并删除任务5。
采用上述方式,存放在运行任务池中的任务均是可以立即执行的任务,以便于在应对需要处理多个任务流的场景的情况下,可以避免导致其他任务流的任务执行效率受到影响。
基于同一发明构思,本公开实施例还提供一种任务流处理装置,参照图6,该任务流处理装置600可以包括:
打包模块601,用于根据打包编码中各打包函数的先后顺序,执行打包函数,其中,每一打包函数的调用参数为任务流中的至少一个任务的任务标识,所述打包函数用于将作为调用参数的任务标识打包为任务包,所述任务包包括执行序号以及任务标识,所述执行序号是根据所述打包函数的执行顺序确定的;
执行模块602,用于根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务。
可选地,针对每一所述打包函数,该打包函数通过以下方式将作为该打包函数的调用参数的任务标识打包为任务包:
创建一任务包;
在任务缓存为空的情况下,将初始执行序号作为本次创建的任务包的执行序号;
在所述任务缓存不为空的情况下,将所述任务缓存中上一存储的任务对应的任务包的执行序号与预设数值的和作为本次创建的任务包的执行序号;
所述打包函数还用于:将作为调用函数的任务标识所对应的任务存储到所述任务缓存中;
所述执行模块602具体用于根据所述任务包的执行序号,依次根据每一所述任务包中的任务标识从所述任务缓存中取出任务进行执行。
可选地,所述任务流包括并行分支,所述并行分支上的多个任务对应的任务标识用于作为同一调用参数调用所述打包函数;
所述打包函数还用于:在该打包函数的调用参数包括多个任务的任务标识的情况下,针对每一所述分支中第一个任务标识之后的每一任务标识,设置对应该任务标识的前置任务标识;并,
针对每一所述分支中最后一个任务标识之前的每一任务标识,设置对应该任务标识的后置任务标识。
可选地,所述执行模块602具体用于在执行到包括多个任务标识的任务包时,根据所述前置任务标识和所述后置任务标识确定所述多个任务标识对应的任务之间的任务执行顺序,并根据所述任务执行顺序依次从所述任务缓存中取出所述多个任务进行执行。
可选地,所述执行模块包括执行子模块,用于通过对应所述任务流的任务消息处理器,将所述任务包中的任务标识对应的任务按照所述任务包的执行序号放入任务管理器的运行任务池,所述任务管理器用于执行所述运行任务池中的任务,并对所述运行任务池中的任务的执行状态进行监控,并在监控到所述运行任务池中的任务运行完成后通知所述任务消息处理器;
其中,所述任务消息处理器是在接收到所述任务管理器的所述通知后,将下一任务包中的任务标识对应的任务加入所述运行任务池中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例中任一所述任务流处理方法的步骤。
基于同一发明构思,本公开实施例还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法实施例中任一所述任务流处理方法的步骤。
图7是根据一示例性实施例示出的一种电子设备的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的任务流处理方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的任务流处理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的任务流处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的任务流处理方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (8)

1.一种任务流处理方法,其特征在于,所述方法包括:
根据打包编码中各打包函数的先后顺序,执行打包函数,其中,每一打包函数的调用参数为任务流中的至少一个任务的任务标识,所述打包函数用于将作为调用参数的任务标识打包为任务包,所述任务包包括执行序号以及任务标识,所述执行序号是根据所述打包函数的执行顺序确定的;
根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务;针对每一所述打包函数,该打包函数通过以下方式将作为该打包函数的调用参数的任务标识打包为任务包:
创建一任务包;
在任务缓存为空的情况下,将初始执行序号作为本次创建的任务包的执行序号;
在所述任务缓存不为空的情况下,将所述任务缓存中上一存储的任务对应的任务包的执行序号与预设数值的和作为本次创建的任务包的执行序号;
所述打包函数还用于:将作为调用函数的任务标识所对应的任务存储到所述任务缓存中;
所述根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务,包括:根据所述任务包的执行序号,依次根据每一所述任务包中的任务标识从所述任务缓存中取出任务进行执行。
2.根据权利要求1所述的方法,其特征在于,所述任务流包括并行分支,所述并行分支上的多个任务对应的任务标识用于作为同一调用参数调用所述打包函数;
所述打包函数还用于:在该打包函数的调用参数包括多个任务的任务标识的情况下,针对每一所述分支中第一个任务标识之后的每一任务标识,设置对应该任务标识的前置任务标识;并,
针对每一所述分支中最后一个任务标识之前的每一任务标识,设置对应该任务标识的后置任务标识。
3.根据权利要求2所述的方法,其特征在于,所述根据所述任务包的执行序号,依次根据每一所述任务包中的任务标识从所述任务缓存中取出任务进行执行,包括:
在执行到包括多个任务标识的任务包时,根据所述前置任务标识和所述后置任务标识确定所述多个任务标识对应的任务之间的任务执行顺序,并根据所述任务执行顺序依次从所述任务缓存中取出所述多个任务进行执行。
4.根据权利要求1所述的方法,其特征在于,所述依次执行每个所述任务包括的任务标识对应的任务,包括:
通过对应所述任务流的任务消息处理器,将所述任务包中的任务标识对应的任务按照所述任务包的执行序号放入任务管理器的运行任务池,所述任务管理器用于执行所述运行任务池中的任务,并对所述运行任务池中的任务的执行状态进行监控,并在监控到所述运行任务池中的任务运行完成后通知所述任务消息处理器;
其中,所述任务消息处理器是在接收到所述任务管理器的所述通知后,将下一任务包中的任务标识对应的任务加入所述运行任务池中。
5.一种任务流处理装置,其特征在于,所述装置包括:
打包模块,用于根据打包编码中各打包函数的先后顺序,执行打包函数,其中,每一打包函数的调用参数为任务流中的至少一个任务的任务标识,所述打包函数用于将作为调用参数的任务标识打包为任务包,所述任务包包括执行序号以及任务标识,所述执行序号是根据所述打包函数的执行顺序确定的;
执行模块,用于根据所述任务包的执行序号,依次执行每个所述任务包包括的任务标识对应的任务;
针对每一所述打包函数,该打包函数通过以下方式将作为该打包函数的调用参数的任务标识打包为任务包:
创建一任务包;
在任务缓存为空的情况下,将初始执行序号作为本次创建的任务包的执行序号;
在所述任务缓存不为空的情况下,将所述任务缓存中上一存储的任务对应的任务包的执行序号与预设数值的和作为本次创建的任务包的执行序号;
所述打包函数还用于:将作为调用函数的任务标识所对应的任务存储到所述任务缓存中;
所述执行模块具体用于根据所述任务包的执行序号,依次根据每一所述任务包中的任务标识从所述任务缓存中取出任务进行执行。
6.根据权利要求5所述的装置,其特征在于,所述任务流包括并行分支,所述并行分支上的多个任务对应的任务标识用于作为同一调用参数调用所述打包函数;
所述打包函数还用于:在该打包函数的调用参数包括多个任务的任务标识的情况下,针对每一所述分支中第一个任务标识之后的每一任务标识,设置对应该任务标识的前置任务标识;并,
针对每一所述分支中最后一个任务标识之前的每一任务标识,设置对应该任务标识的后置任务标识。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤。
8.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-4中任一项所述方法的步骤。
CN202110343053.3A 2021-03-30 2021-03-30 任务流处理方法、装置、存储介质及电子设备 Active CN113176931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110343053.3A CN113176931B (zh) 2021-03-30 2021-03-30 任务流处理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110343053.3A CN113176931B (zh) 2021-03-30 2021-03-30 任务流处理方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113176931A CN113176931A (zh) 2021-07-27
CN113176931B true CN113176931B (zh) 2024-04-05

Family

ID=76922647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110343053.3A Active CN113176931B (zh) 2021-03-30 2021-03-30 任务流处理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113176931B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002224A (zh) * 2022-05-26 2022-09-02 阿里巴巴(中国)有限公司 消息处理方法、装置、***、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182131A (zh) * 2017-12-13 2018-06-19 东软集团股份有限公司 监控应用运行状态的方法、装置、存储介质及电子设备
CN108958832A (zh) * 2018-06-12 2018-12-07 北京蜂盒科技有限公司 定制业务流程的方法、装置和存储介质以及电子设备
WO2018236691A1 (en) * 2017-06-20 2018-12-27 Vfunction, Inc. SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
CN110716748A (zh) * 2019-09-24 2020-01-21 深圳中集智能科技有限公司 业务处理方法、装置、计算机可读介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170178056A1 (en) * 2015-12-18 2017-06-22 International Business Machines Corporation Flexible business task flow

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018236691A1 (en) * 2017-06-20 2018-12-27 Vfunction, Inc. SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
CN108182131A (zh) * 2017-12-13 2018-06-19 东软集团股份有限公司 监控应用运行状态的方法、装置、存储介质及电子设备
CN108958832A (zh) * 2018-06-12 2018-12-07 北京蜂盒科技有限公司 定制业务流程的方法、装置和存储介质以及电子设备
CN110716748A (zh) * 2019-09-24 2020-01-21 深圳中集智能科技有限公司 业务处理方法、装置、计算机可读介质及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于XML的任务流编辑器的设计与实现;佟玲;周传生;;沈阳师范大学学报(自然科学版)(第04期);全文 *
基于复杂事件处理的业务规则管理***的研究;余玉涵;刘锋;;电脑知识与技术(第10期);全文 *

Also Published As

Publication number Publication date
CN113176931A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
US10664385B1 (en) Debugging in an actor-based system
CN111459659A (zh) 数据处理方法、装置、调度服务器及介质
CN105573755A (zh) 一种应用Activity渲染时间获取方法和装置
CN105512015A (zh) 一种安卓目标应用崩溃统计方法和装置
CN113176931B (zh) 任务流处理方法、装置、存储介质及电子设备
CN105072461A (zh) 一种数据处理方法和装置
CN105095749A (zh) 状态栏通知的接管方法及装置
US20140075418A1 (en) Replacing contiguous breakpoints with control words
CN111400016A (zh) 一种调用应用程序接口函数的方法和设备
CN113703996B (zh) 基于用户和yang模型分组的访问控制方法、设备及介质
CN113190427B (zh) 卡顿监控方法、装置、电子设备及存储介质
CN107872363B (zh) 数据包丢失的处理方法、***、可读存储介质及电子设备
CN109886861A (zh) 一种高效率图档格式heif图像加载方法及装置
CN112799791A (zh) 分布式锁的调用方法、装置、电子设备和存储介质
CN107342981B (zh) 传感器数据的传输方法及装置、虚拟现实头戴设备
CN112860449B (zh) 一种防止消息超时导致重启的方法、***、设备及介质
CN104010078A (zh) 终端对已拦截信息的处理方法及设备
CN113722022A (zh) 状态管理***及方法
CN110673793B (zh) 存储设备节点事件管理方法、***及电子设备和存储介质
US9934035B2 (en) Device and method for tracing updated predicate values
CN103138952B (zh) 提醒业务设置方法、***和媒体交换网
CN107729772B (zh) 一种处理器
CN113448585A (zh) 一种对线程池的优化方法、装置、电子设备和存储介质
CN110599005B (zh) 流程解析方法、装置、计算机可读存储介质和电子设备
CN106452807B (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
GR01 Patent grant
GR01 Patent grant