CN112799646A - 任务运行方法及设备 - Google Patents
任务运行方法及设备 Download PDFInfo
- Publication number
- CN112799646A CN112799646A CN202110182058.2A CN202110182058A CN112799646A CN 112799646 A CN112799646 A CN 112799646A CN 202110182058 A CN202110182058 A CN 202110182058A CN 112799646 A CN112799646 A CN 112799646A
- Authority
- CN
- China
- Prior art keywords
- task
- engine
- flow
- template
- running
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供一种任务运行方法及设备,该方法包括:接收任务运行指令,该任务运行指令中包括流程引擎模板的标识;根据该标识获取流程引擎模板,该流程引擎模板中包括至少一个流程模板;根据至少一个流程模板在流程引擎模板中的顺序运行对应的任务,每个流程模板对应一个任务,当流程引擎模板中包括多个流程模板时,多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。由于流程引擎模板是一个简单的配置文件,开发人员可以按照预设格式生成流程引擎模板即可实现流程引擎的开发,并不需要掌握docker、kubernetes技术。从而可以降低流程引擎的开发难度,进而降低不同流程对应的任务有序运行的实现难度。
Description
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种任务运行方法及设备。
背景技术
流程引擎是对多个流程以串行或并发的方式进行任务运行的一种技术。例如,在软件研发平台中,可以将软件产品的上线过程划分为以下流程:编译打包、部署测试环境、小流量上线、全量上线。在一次任务运行过程中,可以串行运行编译打包的任务、部署测试环境的任务、小流量上线的任务、全量上线的任务,即在一次任务运行过程中各流程对应的任务是顺序运行的。在多次任务运行过程中,多次运行之间可以是并行的,但在每次任务运行过程中,串行运行。例如,对于两次任务运行,在第一次任务运行过程中,串行运行编译打包的任务TK11、部署测试环境的任务TK12、小流量上线的任务TK13、全量上线的任务TK14;在第二次任务运行过程中,串行运行编译打包的任务TK21、部署测试环境的任务TK22、小流量上线的任务TK23、全量上线的任务TK24。
现有技术中,流程引擎通常是通过容器化技术实现的,以避免流程间的任务隔离和编排。
然而,上述方案存在不同流程间的任务有序运行的实现难度较大。
发明内容
本公开实施例提供一种任务运行方法及设备,以解决现有技术中不同流程间的任务有序运行的实现难度较大的问题。
第一方面,本公开实施例提供一种任务运行方法,包括:
接收任务运行指令,所述任务运行指令中包括流程引擎模板的标识;
响应于所述任务运行指令,根据所述标识获取所述流程引擎模板,所述流程引擎模板中包括至少一个流程模板;
根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,每个所述流程模板对应一个任务,当所述流程引擎模板中包括多个流程模板时,所述多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。
第二方面,本公开实施例提供一种任务运行装置,包括:
任务运行命令接收模块,用于接收任务运行指令,所述任务运行指令中包括流程引擎模板的标识;
流程引擎模板获取模块,用于响应于所述任务运行指令,根据所述标识获取所述流程引擎模板,所述流程引擎模板中包括至少一个流程模板;
任务执行模块,用于根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,每个所述流程模板对应一个任务,当所述流程引擎模板中包括多个流程模板时,所述多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现如上述第一方面所述的方法。
第五方面,本公开实施例提供一种计算机程序,所述计算机程序用于实现如上述第一方面所述的方法。
本实施例提供的任务运行方法及设备,可以接收任务运行指令,该任务运行指令中包括流程引擎模板的标识;响应于任务运行指令,根据该标识获取流程引擎模板,该流程引擎模板中包括至少一个流程模板;根据至少一个流程模板在流程引擎模板中的顺序运行对应的任务,每个流程模板对应一个任务,当流程引擎模板中包括多个流程模板时,多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。由于流程引擎模板是一个简单的配置文件,开发人员可以按照预设格式生成流程引擎模板即可实现流程引擎的开发,并不需要掌握docker、kubernetes技术。从而本公开可以降低流程引擎的开发难度,进而降低不同流程对应的任务有序运行的实现难度。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示例性示出了本公开实施例应用的任务运行场景的一种示意图;
图2示例性示出了本公开实施例提供的一种任务运行方法的步骤流程图;
图3示例性示出了对一流程引擎模板进行一次运行的详细流程示意图;
图4示例性示出了对一流程引擎模板运行三次的过程示意图;
图5示例性示出了任务运行接口和三种类之间的关系示意图;
图6示例性示出了本公开实施例提供的一种任务运行装置的结构框图;
图7示例性示出了本公开实施例提供的一种电子设备的结构框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例可以应用于电子设备的任务运行场景中,当流程为多个时,这些流程可以串行运行或并行运行。这些流程在运行之后可以称为任务,一个流程可以同时对应多个任务,每个任务的输入和输出不同,但处理逻辑相同。
图1示例性示出了本公开实施例应用的任务运行场景的一种示意图。参照图1,存在两个流程TP1和TP2,TP2依赖于TP1,对TP1和TP2顺序进行任务运行可以实现一总任务。图1中示出了对TP1和TP2顺序进行两次任务运行的过程,针对流程TP1进行两次任务运行分别得到两个任务TK1和TK2,针对流程TP2进行两次任务运行分别得到两个任务TK1和TK2。
其中,TK1和TK2的输入分别为IP1和IP2,由于IP1和IP2不同,从而TK1和TK2的输出也不同,分别为OP1和OP2。同理,TP2对应有两个任务TK3和TK4,TK3和TK4的输入分别为IP3和IP4,由于IP3和IP4不同,从而TK3和TK4的输出也不同,分别为OP3和OP4。
需要说明的是,由于TP2依赖于TP1,从而在运行TK1之后运行TK3实现一总任务的运行,在运行TK2之后运行TK4实现另一总任务的运行。当依赖关系为后一任务的输入为其依赖的任务的输出时,TK1的输出OP1可以作为TK3的输入IP3,TK2的输出OP2可以作为TK4的输入IP4。
其中,上述电子设备可以是具有数据处理功能的任意设备,例如,计算机。
在上述任务运行场景中,可以通过docker、kubernetes等容器化技术实现流程引擎,对不同流程间的任务编排运行顺序,以使不同流程对应的任务按照顺序运行。
然而,上述docker、kubernetes是比较专业性的技术,开发人员需要对docker、kubernetes有一定程度的掌握。由于docker、kubernetes等容器化技术的掌握难度较高,从而流程引擎的开发难度较大,进而导致不同流程有序运行的实现难度较大。
为了解决上述问题,本公开实施例可以通过流程引擎模板编排不同流程对应的任务的运行顺序。其中,流程引擎模板中包括一个或多个流程模板,一个流程模板包括一个流程的相关信息,流程模板在流程引擎模板中的顺序体现了流程模板对应的任务的运行顺序。由于流程引擎模板是一个简单的配置文件,开发人员可以按照预设格式生成流程引擎模板即可实现流程引擎的开发,并不需要掌握docker、kubernetes技术。从而本公开可以降低流程引擎的开发难度,进而降低不同流程对应的任务有序运行的实现难度。
下面以具体地实施例对本公开实施例的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开实施例进行描述。
图2示例性示出了本公开实施例提供的一种任务运行方法的步骤流程图,参考图2,该方法包括:
S101:接收任务运行指令,该任务运行指令中包括流程引擎模板的标识。
其中,任务运行指令可以由图3中的可视化的界面或API(applicationprogramming interface,应用程序接口)触发。从而,流程引擎模板的标识可以在界面或API中指定。
S102:响应于任务运行指令,根据该标识获取上述流程引擎模板,该流程引擎模板中包括至少一个流程模板。
其中,流程引擎模板是一个配置文件,例如,JSON(JavaScript Object Notation,Java脚本对象简谱)格式的配置文件,流程引擎模板中的键值对符合JSON格式,键值对包括属性的名称和属性对应的数据。例如,键值对“status”:“run”可以表示属性为状态,取值为运行中,即状态为运行中。
可以理解的是,本公开实施例对配置文件的格式不加以限制。
流程引擎模板中的流程模板根据流程引擎模板的作用确定,运行该流程引擎模板中所有流程模板对应的任务之后可以实现一个总任务。例如,当软件产品的上线过程为一个总过程时,可以为该上线过程设置一流程引擎模板,其中包括以下四个流程分别对应的流程模板:编译打包、部署测试环境、小流量上线、全量上线。从而运行该流程引擎模板中各流程对应的任务可以实现软件产品的上线任务。
上述流程引擎模板中的一个流程模板对应一个流程,流程模板中包括运行该流程所对应的任务所需的属性,该属性可以包括但不限于:输入、输出、类型和状态。
其中,输入用于表示输入至任务中的数据信息,输出用于表示任务输出的数据信息。
状态用于表示任务的运行情况,包括但不限于:未运行、运行中、运行成功、运行失败。在运行任务之前,任务的状态为未运行;在启动任务之后,任务的状态为运行中;在任务运行成功之后,任务的状态为运行成功;在任务运行失败之后,任务的状态为运行失败。
需要说明的是,在根据流程引擎模板运行任务时,流程引擎模板中的状态不修改,流程引擎模板中的状态可以为一个默认值,例如,未运行。在运行流程引擎模板中的流程对应的任务时,可以将流程引擎模板拷贝一份得到任务引擎,即将流程引擎模板中的每个流程模板拷贝了一份作为任务,该任务中的状态可以被修改。如此,针对同一个流程引擎模板对应的多个任务引擎,可以区分同一流程对应的不同任务引擎中任务的状态。
类型用于表示任务对输入的处理逻辑类型,用于区分不同的处理过程。通常情况下,不同类型的任务之间的输入和输出也不同。例如,所述类型包括以下至少一种:对超文本传输协议请求进行处理的类型、对服务创建请求进行处理的类型、对消息处理请求进行处理的类型,即:该类型可以表示任务用于对HTTP(hyper text transfer protocol,超文本传输协议)请求、或服务创建请求、或消息处理请求进行处理。
可以理解的是,上述类型通常在流程模板中已确定,当拷贝该流程模板得到任务引擎时,任务引擎中的任务的类型和流程模板的类型相同。
S103:根据至少一个流程模板在流程引擎模板中的顺序运行对应的任务,每个流程模板对应一个任务,当流程引擎模板中包括多个流程模板时,多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。
可以理解的是,S101至S103为对一流程引擎模板中的流程模板对应的任务的一次运行(后续称为对流程引擎模板的一次运行)过程,在对流程引擎模板进行一次运行时,该流程引擎模板中的各流程模板分别对应一个任务。
在上述流程引擎模板的一次运行过程中,按照上述顺序逐个运行流程模板对应的任务。具体地,从第一个流程模板对应的任务开始运行,在对每个流程模板对应的任务运行成功之后,运行下一个流程模板对应的任务,直至最后一个流程模板对应的任务运行成功。如此,在一次运行过程中,可以避免不同任务在运行过程中生成的数据混淆,实现了同一次运行过程中的不同任务之间的数据隔离,有助于提高运行结果的准确度。
可以理解的是,上述S101至S103可以被执行N次,也就是对一流程引擎模板进行N次运行。在对流程引擎模板的N次运行时,该流程引擎模板中的各流程模板分别对应N个任务。在上述流程引擎模板的N次运行过程中,还需要进行N次运行之间的数据隔离。
可选地,为了实现N次运行之间的数据隔离,上述根据至少一个流程模板在流程引擎模板中的顺序运行对应的任务,可以包括:拷贝上述流程引擎模板得到对应的任务引擎,该任务引擎中包括上述流程模板对应的任务;为任务引擎分配空闲的内存空间;在该内存空间中,按照任务引擎中的任务顺序,任务引擎中的至少一个任务。
其中,在流程引擎模板的一次运行中,该流程模板对应一个任务引擎,该流程引擎模板中包括的任务数量与流程引擎模板中包括的流程模板数量相同,并且每个流程模板对应一个流程,每个流程对应一个任务。
可以理解的是,在该内存空间中按照任务引擎中的任务顺序,任务引擎中的至少一个任务,可以为该任务引擎中的所有任务在运行过程中使用该内存空间的资源。
图3示例性示出了对一流程引擎模板进行一次运行的详细流程示意图。参照图3所示,首先,可视化的界面或API向流程管理类发送任务运行指令,也就是流程管理类通过S101接收任务运行指令,该任务运行指令中包括一流程引擎模板的标识;然后,流程管理类向存储设备发送流程引擎模板获取指令,该流程引擎模板获取指令中包括该流程引擎模板的标识;存储设备向流程管理类返回流程引擎模板,也就是流程管理类通过S102获取流程引擎模板;再然后,流程管理类生成并运行任务引擎,在运行任务引擎的过程中,调用任务运行接口按照顺序运行任务引擎中包括的任务;当然,任务运行接口在运行完一个任务之后会在任务引擎中记录运行结果,在运行完任务引擎中的所有任务之后,任务引擎中记录有所有任务的运行结果,即总任务运行结果,流程管理类可以从任务引擎中获取到该总任务运行结果;最后,一方面,流程管理类将总任务运行结果作为响应返回给可视化的界面或API,另一方面,流程管理类还可以将总任务运行结果写入日志文件中,并获取写入结果。
在本公开实施例中,对于该流程引擎模板的每次运行,均为该流程引擎模板对应的任务引擎分配空闲的内存空间,以将该任务引擎中的任务在运行过程中生成的数据存储在该内存空间中。由于该空闲的内存空间包括之前未被分配给已启动的任务引擎,从而不同的任务引擎的内存空间不同,进而不同的任务引擎中的任务在运行过程中生成的数据不会混淆,实现了不同的任务引擎之间的数据隔离。
图4示例性示出了对一流程引擎模板运行三次的过程示意图。如图4所示,三次运行分别生成任务引擎TKE1、TKE2和TKE3,分别对应第一次运行、第二次运行和第三次运行,并且每个任务引擎在一单独的内存空间中运行,如此实现了TKE1、TKE2和TKE3之间的数据隔离。
上述图4中,由于三次运行对应同一流程引擎模板,从而TKE1、TKE2和TKE3中均包括相同数量的任务,并且任务之间具有对应关系,即:TKE1中的任务TK11、TKE2中的任务TK21和TKE3中的任务TK31均对应流程引擎模板中的第一个流程模板,TKE1中的任务TK12、TKE2中的任务TK22和TKE3中的任务TK32均对应流程引擎模板中的第二个流程模板,TKE1中的任务TK13、TKE2中的任务TK23和TKE3中的任务TK33均对应流程引擎模板中的第三个流程模板,TKE1中的任务TK14、TKE2中的任务TK24和TKE3中的任务TK34均对应流程引擎模板中的第四个流程模板,TKE1中的任务TK15、TKE2中的任务TK25和TKE3中的任务TK35均对应流程引擎模板中的第五个流程模板。
此外,在TKE1中,按照TK11、TK12、TK13、TK14和TK15的顺序运行TKE1中的上述任务,在TKE2中,按照TK21、TK22、TK23、TK24和TK25的顺序运行TKE2中的上述任务,在TKE3中,按照TK31、TK32、TK33、TK34和TK35的顺序运行TKE3中的上述任务。若图4中加粗的任务为未运行任务,则在当前时间,TKE1中的未运行任务包括TK15,TKE2中的未运行任务包括TK24和TK25,TKE3中的未运行任务包括TK33、TK34和TK35。可以看出,第一次运行的未运行任务少于第二次运行的未运行任务,第二次运行的未运行任务少于第三次运行的未运行任务,从而第一次运行的启动运行时间早于第二次运行的启动时间,第二次运行的启动时间早于第三次运行的启动时间。
当然,在实际应用中,不同次运行的启动时间是可以相同的,从而在同一时间,不同次运行对应的任务引擎中的未运行任务在流程引擎模板中对应相同的流程模板,即不同次运行是同步进行的。
上述任务引擎中的所有任务在运行过程中使用该内存空间的资源,可以为该任务引擎中的所有任务在运行过程中生成的数据存储在该内存空间中。如此,上述在该内存空间中,按照任务引擎中的任务顺序,任务引擎中的至少一个任务,包括:在按照该任务引擎中的任务顺序运行其中一个任务之前,将对应的内存空间中的一空闲子空间分配给该任务;运行该任务,并将运行该任务过程中生成的数据存储至内存空间。
其中,运行该任务过程中生成的数据包括:运行该任务过程中定义的变量、所需的类、输入和输出等。
可以看出,为了实现尽量实现任务之间的数据隔离,本公开实施例为每个任务分配不同的子空间。在该任务运行结束之后可以将该任务所占用的子空间释放。
可选地,在按照上述任务引擎中的任务顺序运行其中一个第一任务之前,根据第一任务中的第一属性包括的目标符号,获取该第一属性依赖的第二任务的第二属性,在任务引擎中上述第二任务位于第一任务之前;根据第二属性对应的数据确定第一属性对应的数据;通过第一属性的数据运行第一任务。
其中,第一任务和第二任务是任务引擎中的两个任务,并且第一任务依赖于第二任务,第二任务在第一任务之前运行,第二任务对应的流程模板在流程引擎模板中位于第一任务对应的流程模板之前。上述第一任务依赖于第二任务,即为第一任务的至少一个第一属性依赖于第二任务的至少一个第二属性。
基于上述依赖关系,第一属性中包括用于指定第二任务和第二属性的信息,该信息可以用目标符号指示。具体地,第二任务的标识和第二属性的标识可以位于目标符号之前或之后或之间。第二属性对应的数据可以为第一属性对应的全部数据或部分数据。
可选地,上述目标符号包括起始子符号和结束子符号,位于起始子符号和结束子符号之间的信息包括第二任务的标识、第二属性的标识。
其中,起始子符号和结束子符号可以包括一个或多个。例如,起始子符号可以为“${{”,结束子符号可以为“}}”,从而“${{TK[1].output}}”中的TK[1].output包括第二任务的标识、第二属性的标识,第二任务的标识可以为1,第二属性的标识可以为output(输出),即标识为1的任务的输出为该第一任务的属性对应的数据。当该属性为输入,第一任务的标识为2,且任务的标识代表任务在任务引擎中的位置序号时,上述“${{TK[1].output}}”代表任务引擎中的第一个任务的输出作为第二个任务的输入。
本公开实施例可以通过起始子符号和结束子符号准确的确定第二任务的标识、第二属性的标识,以使任务之间的依赖关系更加准确。
可选地,上述根据第一属性的数据运行第一任务之前,可以将内存空间中的一空闲子空间分配给第一任务,并将运行第一任务过程中生成的数据存储至内存空间。
可选地,在按照任务引擎中的任务顺序运行其中一个任务时,将该任务的类型作为任务运行接口的输入,通过该任务运行接口调用该类型对应的任务运行类运行该任务。
其中,任务运行接口可以作为多个类型的任务运行类对应的统一接口,该接口可以通过类型调用对应的任务运行类。例如,图5示例性示出了任务运行接口和三种类之间的关系示意图。如图5所示,当该类型表示该任务用于对HTTP请求进行处理时,该接口可以调用HTTP请求处理类对HTTP请求进行处理;当该类型表示该任务用于对服务创建请求进行处理时,该接口可以调用服务创建类创建服务;当该类型表示该任务用于对消息进行处理时,该接口可以调用消息处理类对消息进行发送、接收等处理。
表1示例性示出了上述三种类的输入、处理过程和输出。
表1
可选地,根据第一属性的数据运行第一任务可以包括:将第一任务的类型作为任务运行接口的输入,通过该任务运行接口调用该类型对应的任务运行类,以根据第一属性的数据运行该第一任务。
对应于上文实施例的任务运行方法,图6示例性示出了本公开实施例提供的一种任务运行装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图6,上述任务运行装置200包括:任务运行命令接收模块201、流程引擎模板获取模块202和任务执行模块203。
其中,任务运行命令接收模块201,用于接收任务运行指令,所述任务运行指令中包括流程引擎模板的标识。
流程引擎模板获取模块202,用于响应于所述任务运行指令,根据所述标识获取所述流程引擎模板,所述流程引擎模板中包括至少一个流程模板。
任务执行模块203,用于根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,每个所述流程模板对应一个任务,当所述流程引擎模板中包括多个流程模板时,所述多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。
可选地,所述任务执行模块203还用于:拷贝所述流程引擎模板得到对应的任务引擎,所述任务引擎中包括所述流程模板对应的任务;为所述任务引擎分配空闲的内存空间;在所述内存空间中,按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务。
可选地,所述任务执行模块203还用于:在按照所述任务引擎中的任务顺序运行其中一个任务之前,将所述内存空间中的一空闲子空间分配给所述任务;运行所述任务,并将运行所述任务过程中生成的数据存储至所述内存空间。
可选地,所述任务执行模块203还用于:在按照所述任务引擎中的任务顺序运行其中一个第一任务之前,根据所述第一任务中的第一属性包括的目标符号,获取所述第一属性依赖的第二任务的第二属性,在所述任务引擎中上述第二任务位于所述第一任务之前;根据所述第二属性对应的数据确定所述第一属性对应的数据;根据所述第一属性的数据运行所述第一任务。
可选地,所述目标符号包括起始子符号和结束子符号,位于所述起始子符号和所述结束子符号之间的信息包括所述第二任务的标识、所述第二属性的标识。
可选地,所述任务执行模块203还用于:在按照所述任务引擎中的任务顺序运行其中一个任务时,将所述任务的类型作为任务运行接口的输入,通过所述任务运行接口调用所述类型对应的任务运行类运行所述任务。
可选地,所述任务的属性包括以下至少一种:输入、输出、类型和状态,所述状态为以下一种:未运行、运行中、运行成功、运行失败,所述类型用于表示所述任务对所述输入的处理逻辑类型。
可选地,所述类型包括以下至少一种:对超文本传输协议请求进行处理的类型、对服务创建请求进行处理的类型、对消息处理请求进行处理的类型。
本实施例提供的任务运行装置,可用于执行上述图2所示的方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图7示例性示出了本公开实施例提供的一种电子设备的结构框图。该电子设备600包括存储器602和至少一个处理器601;
其中,存储器602存储计算机执行指令;
至少一个处理器601执行存储器602存储的计算机执行指令,使得电子设备实现前述图2中的方法;
此外,该电子设备600还可以包括接收器603和发送器604,接收器603用于接收从其余装置或设备的信息,并转发给处理器601,发送器604用于将信息发送到其余装置或设备。
本公开实施例还提供了一种计算机程序,计算机程序用于实现前述图2中的方法。
本公开实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现如前述图2中的方法。
在第一方面的第一种示例中,本公开实施例提供了一种任务运行方法,包括:
接收任务运行指令,所述任务运行指令中包括一流程引擎模板的标识;
响应于所述任务运行指令,根据所述标识获取所述流程引擎模板,所述流程引擎模板中包括至少一个流程模板;
根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,每个所述流程模板对应一个任务,当所述流程引擎模板中包括多个流程模板时,所述多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。
基于第一方面的第一种示例,在第一方面的第二种示例中,所述根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,包括:
拷贝所述流程引擎模板得到对应的任务引擎,所述任务引擎中包括所述流程模板对应的任务;
为所述任务引擎分配空闲的内存空间;
在所述内存空间中,按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务。
基于第一方面的第二种示例,在第一方面的第三种示例中,所述在所述内存空间中,按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务,包括:
在按照所述任务引擎中的任务顺序运行其中一个任务之前,将所述内存空间中的一空闲子空间分配给所述任务;
运行所述任务,并将运行所述任务过程中生成的数据存储至所述内存空间。
基于第一方面的第二种示例,在第一方面的第四种示例中,所述按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务,包括:
在按照所述任务引擎中的任务顺序运行其中一个第一任务之前,根据所述第一任务中的第一属性包括的目标符号,获取所述第一属性依赖的第二任务的第二属性,在所述任务引擎中上述第二任务位于所述第一任务之前;
根据所述第二属性对应的数据确定所述第一属性对应的数据;
根据所述第一属性的数据运行所述第一任务。
基于第一方面的第四种示例,在第一方面的第五种示例中,所述目标符号包括起始子符号和结束子符号,位于所述起始子符号和所述结束子符号之间的信息包括所述第二任务的标识、所述第二属性的标识。
基于第一方面的第二种示例,在第一方面的第六种示例中,所述按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务,包括:
在按照所述任务引擎中的任务顺序运行其中一个任务时,将所述任务的类型作为任务运行接口的输入,通过所述任务运行接口调用所述类型对应的任务运行类运行所述任务。
基于第一方面的第一至第六任一种示例,在第一方面的第七种示例中,所述任务的属性包括以下至少一种:输入、输出、类型和状态,所述状态为以下一种:未运行、运行中、运行成功、运行失败,所述类型用于表示所述任务对所述输入的处理逻辑类型。
基于第一方面的第七种示例,在第一方面的第八种示例中,所述类型包括以下至少一种:对超文本传输协议请求进行处理的类型、对服务创建请求进行处理的类型、对消息处理请求进行处理的类型。
在第二方面的第一种示例中,提供了一种任务运行装置,包括:
任务运行命令接收模块,用于接收任务运行指令,所述任务运行指令中包括流程引擎模板的标识;
流程引擎模板获取模块,用于响应于所述任务运行指令,根据所述标识获取所述流程引擎模板,所述流程引擎模板中包括至少一个流程模板;
任务执行模块,用于根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,每个所述流程模板对应一个任务,当所述流程引擎模板中包括多个流程模板时,所述多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。
基于第二方面的第一种示例,在第二方面的第二种示例中,所述任务执行模块还用于:拷贝所述流程引擎模板得到对应的任务引擎,所述任务引擎中包括所述流程模板对应的任务;为所述任务引擎分配空闲的内存空间;在所述内存空间中,按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务。
基于第二方面的第二种示例,在第二方面的第三种示例中,所述任务执行模块还用于:在按照所述任务引擎中的任务顺序运行其中一个任务之前,将所述内存空间中的一空闲子空间分配给所述任务;运行所述任务,并将运行所述任务过程中生成的数据存储至所述内存空间。
基于第二方面的第二种示例,在第二方面的第四种示例中,所述任务执行模块还用于:在按照所述任务引擎中的任务顺序运行其中一个第一任务之前,根据所述第一任务中的第一属性包括的目标符号,获取所述第一属性依赖的第二任务的第二属性,在所述任务引擎中上述第二任务位于所述第一任务之前;根据所述第二属性对应的数据确定所述第一属性对应的数据;根据所述第一属性的数据运行所述第一任务。
基于第二方面的第四种示例,在第二方面的第五种示例中,所述目标符号包括起始子符号和结束子符号,位于所述起始子符号和所述结束子符号之间的信息包括所述第二任务的标识、所述第二属性的标识。
基于第二方面的第二种示例,在第二方面的第六种示例中,所述任务执行模块还用于:在按照所述任务引擎中的任务顺序运行其中一个任务时,将所述任务的类型作为任务运行接口的输入,通过所述任务运行接口调用所述类型对应的任务运行类运行所述任务。
基于第二方面的第一至第六任一种示例,在第二方面的第七种示例中,所述任务的属性包括以下至少一种:输入、输出、类型和状态,所述状态为以下一种:未运行、运行中、运行成功、运行失败,所述类型用于表示所述任务对所述输入的处理逻辑类型。
基于第二方面的第七种示例,在第二面的第八种示例中,所述类型包括以下至少一种:对超文本传输协议请求进行处理的类型、对服务创建请求进行处理的类型、对消息处理请求进行处理的类型。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如上第一方面所述的方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现如上第一方面所述的方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序,所述计算机程序用于实现如上第一方面所述的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (11)
1.一种任务运行方法,其特征在于,包括:
接收任务运行指令,所述任务运行指令中包括流程引擎模板的标识;
响应于所述任务运行指令,根据所述标识获取所述流程引擎模板,所述流程引擎模板中包括至少一个流程模板;
根据所述至少一个流程模板在所述流程引擎模板中的顺序,运行对应的任务,每个所述流程模板对应一个任务,当所述流程引擎模板中包括多个流程模板时,任意两个流程模板对应的任务的运行时间段不重叠。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,包括:
拷贝所述流程引擎模板得到对应的任务引擎,所述任务引擎中包括各所述流程模板对应的任务;
为所述任务引擎分配空闲的内存空间;
在所述内存空间中,按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务。
3.根据权利要求2所述的方法,其特征在于,所述在所述内存空间中,按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务,包括:
在按照所述任务引擎中的任务顺序运行其中一个任务之前,将所述内存空间中的一空闲子空间分配给所述任务;
运行所述任务,并将运行所述任务过程中生成的数据存储至所述内存空间。
4.根据权利要求2所述的方法,其特征在于,所述按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务,包括:
在按照所述任务引擎中的任务顺序运行其中一个第一任务之前,根据所述第一任务中的第一属性包括的目标符号,获取所述第一属性依赖的第二任务的第二属性,在所述任务引擎中所述第二任务位于所述第一任务之前;
根据所述第二属性对应的数据确定所述第一属性对应的数据;
根据所述第一属性的数据运行所述第一任务。
5.根据权利要求4所述的方法,其特征在于,所述目标符号包括起始子符号和结束子符号,位于所述起始子符号和所述结束子符号之间的信息包括所述第二任务的标识、所述第二属性的标识。
6.根据权利要求2所述的方法,其特征在于,所述按照所述任务引擎中的任务顺序,运行所述任务引擎中的至少一个任务,包括:
在按照所述任务引擎中的任务顺序运行其中一个任务时,将所述任务的类型作为任务运行接口的输入,通过所述任务运行接口调用所述类型对应的任务运行类运行所述任务。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述任务的属性包括以下至少一种:输入、输出、类型和状态,所述状态为以下一种:未运行、运行中、运行成功、运行失败,所述类型用于表示所述任务对所述输入的处理逻辑类型。
8.根据权利要求7所述的方法,其特征在于,所述类型包括以下至少一种:对超文本传输协议请求进行处理的类型、对服务创建请求进行处理的类型、对消息处理请求进行处理的类型。
9.一种任务运行装置,其特征在于,包括:
任务运行命令接收模块,用于接收任务运行指令,所述任务运行指令中包括流程引擎模板的标识;
流程引擎模板获取模块,用于响应于所述任务运行指令,根据所述标识获取所述流程引擎模板,所述流程引擎模板中包括至少一个流程模板;
任务执行模块,用于根据所述至少一个流程模板在所述流程引擎模板中的顺序运行对应的任务,每个所述流程模板对应一个任务,当所述流程引擎模板中包括多个流程模板时,所述多个流程模板中的任意两个流程模板对应的任务的运行时间段不重叠。
10.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如权利要求1至8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使得计算设备实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110182058.2A CN112799646A (zh) | 2021-02-09 | 2021-02-09 | 任务运行方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110182058.2A CN112799646A (zh) | 2021-02-09 | 2021-02-09 | 任务运行方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112799646A true CN112799646A (zh) | 2021-05-14 |
Family
ID=75815069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110182058.2A Pending CN112799646A (zh) | 2021-02-09 | 2021-02-09 | 任务运行方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799646A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407178A (zh) * | 2021-06-01 | 2021-09-17 | 上海安畅网络科技股份有限公司 | 一种跨平台的DevOps引擎模板方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244589A1 (en) * | 2007-03-29 | 2008-10-02 | Microsoft Corporation | Task manager |
CN102033748A (zh) * | 2010-12-03 | 2011-04-27 | 中国科学院软件研究所 | 一种数据处理流程代码的生成方法 |
US9508052B1 (en) * | 2015-12-08 | 2016-11-29 | International Business Machines Corporation | Generating client applications for business processes management engines |
CN109725993A (zh) * | 2018-06-01 | 2019-05-07 | 中国平安人寿保险股份有限公司 | 任务执行方法、装置、设备及计算机可读存储介质 |
CN111506309A (zh) * | 2020-03-16 | 2020-08-07 | 北京嘀嘀无限科技发展有限公司 | 任务执行方法和系统、计算机可读存储介质 |
CN112068936A (zh) * | 2020-07-16 | 2020-12-11 | 石化盈科信息技术有限责任公司 | 一种工作流管理平台及工作流管理系统 |
CN112099768A (zh) * | 2020-08-04 | 2020-12-18 | 北京奇艺世纪科技有限公司 | 业务流程处理方法、装置及计算机可读存储介质 |
-
2021
- 2021-02-09 CN CN202110182058.2A patent/CN112799646A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244589A1 (en) * | 2007-03-29 | 2008-10-02 | Microsoft Corporation | Task manager |
CN102033748A (zh) * | 2010-12-03 | 2011-04-27 | 中国科学院软件研究所 | 一种数据处理流程代码的生成方法 |
US9508052B1 (en) * | 2015-12-08 | 2016-11-29 | International Business Machines Corporation | Generating client applications for business processes management engines |
CN109725993A (zh) * | 2018-06-01 | 2019-05-07 | 中国平安人寿保险股份有限公司 | 任务执行方法、装置、设备及计算机可读存储介质 |
CN111506309A (zh) * | 2020-03-16 | 2020-08-07 | 北京嘀嘀无限科技发展有限公司 | 任务执行方法和系统、计算机可读存储介质 |
CN112068936A (zh) * | 2020-07-16 | 2020-12-11 | 石化盈科信息技术有限责任公司 | 一种工作流管理平台及工作流管理系统 |
CN112099768A (zh) * | 2020-08-04 | 2020-12-18 | 北京奇艺世纪科技有限公司 | 业务流程处理方法、装置及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407178A (zh) * | 2021-06-01 | 2021-09-17 | 上海安畅网络科技股份有限公司 | 一种跨平台的DevOps引擎模板方法和系统 |
CN113407178B (zh) * | 2021-06-01 | 2022-06-17 | 上海安畅网络科技股份有限公司 | 一种跨平台的DevOps引擎模板方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304307B (zh) | 一种区块链上智能合约的性能检测方法 | |
CN111522640A (zh) | 计算图的并行执行方法和设备 | |
US20210149637A1 (en) | Plugin-Oriented Functional Programming System | |
CN112242920B (zh) | 一种云平台部署方法、装置及节点 | |
Terragni et al. | A container-based infrastructure for fuzzy-driven root causing of flaky tests | |
CN110598855A (zh) | 深度学习模型生成方法、装置、设备及存储介质 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN112799646A (zh) | 任务运行方法及设备 | |
CN109032758B (zh) | 容器集群智能生命周期管理方法及装置 | |
US20080115109A1 (en) | Enhanced Hover Help For Software Debuggers | |
US12008353B2 (en) | Parsing tool for optimizing code for deployment on a serverless platform | |
CN111448547A (zh) | 计算机网络中执行和转换计算机程序的方法,特别是控制显微镜的方法 | |
CN114237644A (zh) | 运行镜像的系统、方法、装置和构建镜像的方法、装置 | |
CN114610381A (zh) | 一种方法服务的调用方法、装置、设备及存储介质 | |
CN114296883A (zh) | 一种轻载虚拟化网络实验行为仿真器构建和调度方法 | |
CN113420288A (zh) | 一种容器镜像敏感信息检测系统及方法 | |
Ka et al. | Fundamental design problems of distributed systems for the hard-real-time environment | |
CN115543486B (zh) | 面向无服务器计算的冷启动延迟优化方法、装置和设备 | |
US5032988A (en) | Method of and device for verifying a mathmatical proof | |
US20240104000A1 (en) | Determining and providing representations of program flow control | |
Straesser et al. | Kubernetes-in-the-Loop: Enriching Microservice Simulation Through Authentic Container Orchestration | |
US20240176641A1 (en) | Apparatus and method for executing digital twin | |
KR102102599B1 (ko) | 사물인터넷 디바이스의 제어 소프트웨어 검증 장치 및 그 방법 | |
US20220067502A1 (en) | Creating deep learning models from kubernetes api objects | |
CN110879747B (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 |