CN116048670A - 任务流执行方法、装置、设备和介质 - Google Patents

任务流执行方法、装置、设备和介质 Download PDF

Info

Publication number
CN116048670A
CN116048670A CN202211603594.6A CN202211603594A CN116048670A CN 116048670 A CN116048670 A CN 116048670A CN 202211603594 A CN202211603594 A CN 202211603594A CN 116048670 A CN116048670 A CN 116048670A
Authority
CN
China
Prior art keywords
task
class
processor
stream
scheduling system
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
CN202211603594.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.)
Tengyun Tianyu Science & Technology Beijing Co ltd
Original Assignee
Tengyun Tianyu Science & Technology Beijing 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 Tengyun Tianyu Science & Technology Beijing Co ltd filed Critical Tengyun Tianyu Science & Technology Beijing Co ltd
Priority to CN202211603594.6A priority Critical patent/CN116048670A/zh
Publication of CN116048670A publication Critical patent/CN116048670A/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • 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

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

任务流执行方法、装置、设备和介质
技术领域
本公开涉及计算机技术领域,具体涉及一种用任务流执行方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
随着大数据业务的复杂度日益增高,需要通过大量的离线数据处理任务完成对业务数据的加工,而任务的普遍形式为定时执行或触发执行,因此基于对这些任务的调度执行产生了任务调度系统。诸如Dolphin Scheduler之类的任务调度系统负责管理一个任务何时运行、何时结束以及正确的处理任务之间的依赖关系。Dolphin Scheduler系统是一个分布式去中心化,易扩展的可视化有向无环图(Direct Acyclic Graph,DAG)任务流调度平台。
在使用Dolphin Scheduler时,用户在浏览器页面中通过拖拽方式将任务关联形成工作流。对于一个复杂的数据处理流程,这需要创建完整的处理流程图,创建过程较为复杂。并且,当流程运行出现问题时,需要人工确定执行的是哪条子流程。
发明内容
提供一种缓解、减轻或甚至消除上述问题中的一个或多个的机制将是有利的。
根据本公开的一方面,提供了一种任务流执行方法,包括:执行对可编程式客户端进行初始化的代码,其中,所述可编程式客户端被初始化以提供用于创建任务流的工具类;获取利用所述可编程式客户端的所述工具类进行编程而创建的任务流,其中,所述任务流包括与当前任务相关联的多个子任务流;以及向所述任务调度系统提交所创建的任务流,以使得所述任务调度系统执行与所述当前任务相关联的所述多个子任务流。
根据本公开的另一方面,提供了一种任务流执行装置,包括:第一模块,用于执行对可编程式客户端进行初始化的代码,其中,所述可编程式客户端被初始化以提供用于创建任务流的工具类;第二模块,用于获取利用所述可编程式客户端的所述工具类进行编程而创建的任务流,其中,所述任务流包括与当前任务相关联的多个子任务流;以及第三模块,用于向所述任务调度系统提交所创建的任务流,以使得所述任务调度系统执行与所述当前任务相关联的所述多个子任务流。
根据本公开的另一方面,提供了一种计算机设备,包括:处理器;以及存储器,存储器存储有可被处理器执行的指令,指令在由处理器执行时,使处理器执行上述其中,所述计算机程序在被所述至少一个处理器执行时,使所述至少一个处理器执行上述任务流执行方法。
根据本公开的另一方面,提供了一种存储有指令的非瞬时计算机可读存储介质,指令在由处理器执行时,使处理器执行上述任务流执行方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括:指令,其中,指令在被处理器执行时,使处理器执行上述任务流执行方法。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1是图示出根据示例性实施例的可以在其中实施本文描述的各种方法的示例系统的示意图;
图2是图示出根据示例性实施例的任务流执行方法的流程图;
图3是根据本公开实施例的工具类的示例图;
图4是根据本公开实施例的有向无环图样的示例图;
图5是根据本公开实施例的在DS系统中DAG编辑界面中展示有向无环图的示例图;
图6是图示出根据示例性实施例的任务流执行装置的示意性框图;
图7是图示出能够应用于示例性实施例的示例性计算机设备的框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
在介绍本公开的示例性实施例之前,首先对本文中使用的若干术语进行解释。
下面结合附图详细描述本公开的示例性实施例。
图1是图示出根据示例性实施例的可以在其中实施本文描述的各种方法的示例系统100的示意图。
参考图1,该系统100包括客户端设备110、服务器120、以及将客户端设备110与服务器120通信地耦合的网络130。
客户端设备110包括显示器114和可经由显示器114显示的应用程序(APP)112。应用程序112可以为运行前需要下载和安装的应用程序或者作为轻量化应用程序的小程序(lite app)。在应用程序112为运行前需要下载和安装的应用程序的情况下,应用程序112可以被预先安装在客户端设备110上并被激活。在应用程序112为小程序的情况下,用户102可以通过在宿主应用中搜索应用程序112(例如,通过应用程序112的名称等)或扫描应用程序112的图形码(例如,条形码、二维码等)等方式,在客户端设备110上直接运行应用程序112,而无需安装应用程序112。在一些实施例中,客户端设备110可以是任何类型的移动电子设备,包括移动计算机、移动电话、可穿戴式电子设备(例如智能手表、头戴式设备,包括智能眼镜,等)或其他类型的移动设备。在一些实施例中,客户端设备110可以替换地是固定式电子设备,例如台式机、服务器计算机或其他类型的固定式电子设备。
服务器120典型地为由互联网服务提供商(ISP)或互联网内容提供商(ICP)部署的服务器。服务器120可以代表单台服务器、多台服务器的集群、分布式系统、或者提供基础云服务(诸如云数据库、云计算、云存储、云通信)的云服务器。将理解的是,虽然图1中示出服务器120与仅一个客户端设备110通信,但是服务器120可以同时为多个客户端设备提供后台服务。
网络130的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)、和/或诸如互联网之类的通信网络的组合。网络130可以是有线或无线网络。在一些实施例中,使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来处理通过网络130交换的数据。此外,还可以使用诸如安全套接字层(SSL)、传输层安全(TLS)、虚拟专用网络(VPN)、网际协议安全(IPsec)等加密技术来加密所有或者一些链路。在一些实施例中,还可以使用定制和/或专用数据通信技术来取代或者补充上述数据通信技术。
为了本公开实施例的目的,在图1的示例中,应用程序112可以为可编程式客户端应用。该可编程式客户端应用可以提供用于创建任务流的工具类。与此相应,服务器120可以是与可编程式客户端应用一起使用的服务器。该服务器120可以向客户端设备110中运行的应用程序112提供任务流执行服务。
图1的系统100可以以各种方式配置和操作,以使得能够应用根据本公开所描述的各种方法和装置。
图2是图示出根据示例性实施例的任务流执行方法200的流程图。方法200可以在客户端设备(例如,图1中所示的客户端设备110)处执行,也即,方法200的各个步骤的执行主体可以是图1中所示的客户端设备110。在一些实施例中,方法200可以在服务器(例如,图1中所示的服务器120)处执行。在一些实施例中,方法200可以由客户端设备(例如,客户端设备110)和服务器(例如,服务器120)相组合地执行。在下文中,以执行主体为客户端设备110为例,详细描述方法200的各个步骤。如图2所示,方法200包括步骤210至步骤230。
在步骤210,执行对可编程式客户端进行初始化的代码。
可编程式客户端被初始化以提供用于创建任务流的工具类。
可编程试客户端是针对任务调度系统开发的。在一个情形下,任务调度系统为Dolphin Scheduler(DS)系统,因而针对DS系统中各种功能而设置对应的工作类。在一个示例中,工具类可以包括:客户端接口类、模块管理类、任务流模块类、网络请求工具类、有向无环图抽象类、有向无环图边类、有向无环图顶点类、任务定义类。这样的工具类的示例如图3所示。
DS系统包括多种任务类型的任务节点,例如SHELL节点、SPARK节点、HTTP节点等。因而,针对DS系统中不同任务类型的任务节点而设置对应的工具类。在一个示例中,工具类可以用于定义任务节点的任务类型。又例如,第一工具类可以封装用于实现任务类型为SHELL的节点,第二工具类可以封装用于实现任务类型为SPARK的节点,例如图3中的Shell任务类、Spark类型。
在又一个示例中,工具类可以用于定义多个任务节点、多个任务节点分别对应的任务类型以及多个任务节点之间的关联关系,例如第一任务节点、第一任务节点的任务类型、第二任务节点、第二任务节点的任务类型以及第一任务节点与第二任务节点之间的关联关系。第一任务节点与第二任务节点的任务类型可以相同,也可以不同。相对于DS系统中DAG编辑页面中一次只能拖拽一个任务节点的图标而言,在可编程式客户端中一次调用该实施例中的一个工具类,可以实现对多个任务节点所构成的工作流的创建。
在步骤220,获取利用可编程式客户端的工具类进行编程而创建的任务流。
任务流可以包括与当前任务相关联的多个子任务流。当前任务可以总任务流中当前需要执行的多个子任务流。例如在总任务为创建营销数据报告的情形下,会根据数据的不同确定当前任务,即执行不同的子任务流。子任务流可以包括至少一个任务节点和至少一个任务节点之间的关联关系。
在一个示例中,多个子任务流中的每个子任务流可以包括至少一个任务节点。每个任务节点可以用于实现当前任务的相应环节。进一步地,工具类可以定义多个子任务流的多个任务节点分别对应的任务类型以及多个任务节点之间的关联关系。例如,可以用有向边表征该关联关系,有向边由上游点(第一任务节点)和下游点(第二任务节点)组成。
在一个示例中,可以利用可编程式客户端的工具类进行编程而创建任务流。作为示例,下面给出一种创建工作流的代码。
第一步,获取模块管理器。
示例代码:ModuleManager manager=dolphinClient.moduleManager()。
第二步,创建任务流构造器。
示例代码:WorkFlowBuilder builder=manager.workFlow().builder()。
第三步,通过Spark任务构造器创建Spark任务。
示例代码:Task readerTask=SparkTaskBuilder.builder()
.name("SourceReader")
.appName("SourceReader")
.deployMode(DeployMode.CLUSTER)
.mainJar(26)
.mainClass("com.xxxx.dmp.reader.DataSource")
.mainArgs("arg1arg2")
.driverCores(1)
.driverMemory(MemoryUnit.GB.of(1))
.numExecutors(2)
.executorCores(2)
.executorMemory(MemoryUnit.GB.of(2))
.programType(ProgramType.SCALA)
.flag(Flag.NO)
.timeoutFlag(TimeoutFlag.CLOSE)
.timeout(120)
.taskPriority(Priority.MEDIUM)
.build();
第四步,通过Shell任务构造器创建Shell任务。
示例代码:Task downloadShellTask=ShellTaskBuilder.builder()
.name("DownloadFile")
.script("echo$JAVA_HOME")
.build();
第五步,通过Http任务构造器创建Http任务。
示例代码:Task notifyRemoteTask=HttpTaskBuilder.builder()
.name("NotifyRemoteStart")
.url("http://www.baidu.com")
.method(HttpMethod.POST)
.addParam("token","xxxxxx",HttpParametersType.HEADERS)
.addParam("type","1",HttpParametersType.PARAMETER)
.addParam("id","${val}",HttpParametersType.BODY)
.checkCondition(HttpCheckCondition.STATUS_CODE_DEFAULT)
.connTimeout(10000)
.socketTimeout(30000)
.build();
第六步,通过Spark任务构造器创建Spark任务。
示例代码:Task caseTask=SparkTaskBuilder.builder()
.name("ETL-Task")
.appName("ETL-Task")
.deployMode(DeployMode.CLUSTER)
.mainJar("/saasdmp/saasdmp-model-etl-1.0-SNAPSHOT.jar")
.mainClass("com.talkingdata.dmp.reader.DataTransform")
.mainArgs("arg1arg2")
.driverCores(1)
.driverMemory(MemoryUnit.GB.of(1))
.numExecutors(2)
.executorCores(2)
.executorMemory(MemoryUnit.GB.of(2))
.programType(ProgramType.SCALA)
.flag(Flag.YES)
.timeoutFlag(TimeoutFlag.OPEN)
.timeout(120)
.taskPriority(Priority.MEDIUM)
.build();
第七步,通过Http任务构造器创建Http任务。
示例代码:Task notifyRemoteTaskFailed=HttpTaskBuilder.builder()
.name("NotifyRemoteFailed")
.url("http://www.baidu.com")
.method(HttpMethod.POST)
.addParam("token","xxxxxx",HttpParametersType.HEADERS)
.addParam("type","1",HttpParametersType.PARAMETER)
.addParam("id","${val}",HttpParametersType.BODY)
.checkCondition(HttpCheckCondition.STATUS_CODE_DEFAULT)
.connTimeout(10000)
.socketTimeout(30000)
.build();
第八步,通过Spark任务构造器创建Spark任务。
示例代码:Task downloadShellTask1=ShellTaskBuilder.builder()
.name("DownloadFile1")
.script("echo$JAVA_HOME")
.build();
第九步,通过Spark任务构造器创建Spark任务。
示例代码:Task downloadShellTask2=ShellTaskBuilder.builder()
.name("DownloadFile2")
.script("echo$JAVA_HOME")
.build();
第十步,创建另一个任务流构造器。
示例代码:WorkFlowBuilder builder1=manager.workFlow().builder();
第十一步,创建一个子任务流。
示例代码:builder1.start(downloadShellTask1).ifThen("if-2").successAndFailed(caseTask,downloadShellTask2);
第十二步,创建第三个任务流构造器。
示例代码:WorkFlowBuilder builder2=manager.workFlow().builder();
Task downloadShellTask3=ShellTaskBuilder.builder()
.name("DownloadFile3")
.script("echo$JAVA_HOME")
.build();
第十三步,创建一个子任务流。
示例代码:builder2.start(downloadShellTask).then(downloadShellTask3);
第十四步,创建任务流。
示例代码:builder
.projectCode(7250867166624L)
.start(readerTask)
.ifThen("if").successAndFailed(builder2,notifyRemoteTask)
.switchThen("switch")
.caseStatement("caseCondition_1==1",builder1)
.defaultStatement(notifyRemoteTaskFailed);
WorkFlow workFlow=builder.build();
workFlow.setWorkerGroup("bg");
第十五步,通过项目模块创建一个项目。
示例代码:Result<Project>project=manager.project().createProject("test-2","test");
第十六步,设置项目Code。
示例代码:workFlow.setProjectCode(project.getCode());
第十七步,通过任务流模块创建任务流。
示例代码:
Result<ProcessDefinition>definitionResult=manager.workFlow().createProcessDefinition(wor kFlow);
在步骤230,向任务调度系统提交所创建的任务流,以使得任务调度系统执行与当前任务相关联的多个子任务流。
该示例可以包括:先使得任务调度系统生成包括多个子任务流的有向无环图。再响应于执行有向无环图的命令,解析有向无环图以执行多个子任务流。这样的有向无环图样的示例如图4所示。在DS系统中DAG编辑界面中展示有向无环图样的示例如图5所示。
在一个示例中,可编程式客户端被初始化有任务调度系统的网络地址。相应地,向任务调度系统提交所创建的任务流可以包括:经由网络地址向任务调度系统提交所创建的任务流。
在该示例中,初始化可编程式客户端,并将任务调度系统的网络地址作为入参,以使在利用可编程式客户端创建任务流后,通过该网络地址提交所创建的任务流,从而在任务调度系统中呈现有向无环图,以及利用任务调度系统执行该任务流。
在该示例中,初始化DS客户端,需要DS系统的网络地址,以及当前用户Token(令牌)。
示例代码:
DolphinClient dolphinClient=new
DolphinClient("http://10.16.19.40:12345/dolphinscheduler","319ed5a2e57471b080dae617a9b77ec5");
相对于DS系统仅能通过拖拽将任务关联形成完整的总任务的任务流而言,方法200提供的可编程式客户端,可以灵活地针对当前任务创建相应的任务流,无需创建总任务的相应的完整任务流。同时,针对DS系统中创建的较为复杂的完整任务流,当完整任务流运行出现问题时,需要通过翻阅日志确定出现问题的子流程后,再通过拖拽将任务关联形成正确、完整的总任务的任务流,耗时耗力。而方法200提供的针对当前任务的任务流在提交至DS系统中运行时出现问题时,可以及时对针对当前任务的任务流进行修改后再次提交至DS系统运行,提高了任务流的运行效率。
相对于DS系统中对于任务节点的变更,需要将工作流删除后根据变更后的节点添加完整工作流而言,方法200可以通过编程灵活变更需要调整的节点。
图6是图示出根据示例性实施例的任务流执行装置的示意性框图。如图6所示,任务流执行装置600可以包括第一模块610、第二模块620和第三模块630。
第一模块610用于执行对可编程式客户端进行初始化的代码,其中,可编程式客户端被初始化以提供用于创建任务流的工具类。
第二模块620用于获取利用可编程式客户端的工具类进行编程而创建的任务流,其中,任务流包括与当前任务相关联的多个子任务流.
第三模块630用于向任务调度系统提交所创建的任务流,以使得任务调度系统执行与当前任务相关联的多个子任务流。
应当理解,图6中所示装置600的各个模块可以与参考图2描述的方法200中的各个步骤相对应由此,上面针对方法200描述的操作、特征和优点同样适用于装置600及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。例如,上面描述的第二模块620/第三模块630在一些实施例中可以组合成单个模块。
还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图6描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,第一模块610、第二模块620和第三模块630中的一个或多个可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit,CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
根据本公开的一方面,提供了一种计算机设备,其包括至少一个存储器、至少一个处理器以及存储在至少一个存储器上的计算机程序。该至少一个处理器被配置为执行计算机程序以实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
在下文中,结合图7描述这样的计算机设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。
图7示出了可以被用来实施本文所描述的方法的计算机设备700的示例配置。举例来说,图1中所示的服务器120和/或客户端设备110可以包括类似于计算机设备700的架构。上述任务流执行装置600也可以全部或至少部分地由计算机设备700或类似设备或系统实现。
计算机设备700可以包括能够诸如通过系统总线714或其他适当的连接彼此通信的至少一个处理器702、存储器704、(多个)通信接口706、显示设备708、其他输入/输出(I/O)设备710以及一个或更多大容量存储设备712。
处理器702可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器702可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器702可以被配置成获取并且执行存储在存储器704、大容量存储设备712或者其他计算机可读介质中的计算机可读指令,诸如操作系统716的程序代码、应用程序718的程序代码、其他程序720的程序代码等。
存储器704和大容量存储设备712是用于存储指令的计算机可读存储介质的示例,所述指令由处理器702执行来实施前面所描述的各种功能。举例来说,存储器704一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备712一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器704和大容量存储设备712在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,所述计算机程序代码可以由处理器702作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
多个程序可以存储在大容量存储设备712上。这些程序包括操作系统716、一个或多个应用程序718、其他程序720和程序数据722,并且它们可以被加载到存储器704以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):方法200(包括方法200的任何合适的步骤)、和/或本文描述的另外的实施例。
虽然在图7中被图示成存储在计算机设备700的存储器704中,但是模块716、718、720和722或者其部分可以使用可由计算机设备700访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机可读存储介质和通信介质。
计算机可读存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机可读存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算机设备访问的任何其他非传送介质。与此相对,通信介质可以在诸如载波或其他传送机制之类的已调制数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。本文所定义的计算机可读存储介质不包括通信介质。
一个或更多通信接口706用于诸如通过网络、直接连接等等与其他设备交换数据。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE 802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。通信接口706可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口706还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备708,以用于向用户显示信息和图像。其他I/O设备710可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
本文描述的技术可以由计算机设备700的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。例如,该功能还可以通过使用分布式系统在“云”上全部或部分地实现。云包括和/或代表用于资源的平台。平台抽象云的硬件(例如,服务器)和软件资源的底层功能。资源可以包括在远离计算机设备700的服务器上执行计算处理时可以使用的应用和/或数据。资源还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。平台可以抽象资源和功能以将计算机设备700与其他计算机设备连接。因此,本文描述的功能的实现可以分布在整个云内。例如,功能可以部分地在计算机设备700上以及部分地通过抽象云的功能的平台来实现。
虽然在附图和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,不定冠词“一”或“一个”不排除多个,术语“多个”是指两个或两个以上,并且术语“基于”应解释为“至少部分地基于”。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。

Claims (10)

1.一种任务流执行方法,包括:
执行对可编程式客户端进行初始化的代码,其中,所述可编程式客户端被初始化以提供用于创建任务流的工具类;
获取利用所述可编程式客户端的所述工具类进行编程而创建的任务流,其中,所述任务流包括与当前任务相关联的多个子任务流;以及
向任务调度系统提交所创建的任务流,以使得所述任务调度系统执行与所述当前任务相关联的所述多个子任务流。
2.根据权利要求1所述的方法,其中,所述多个子任务流中的每个子任务流包括至少一个任务节点,每个任务节点用于实现所述当前任务的相应环节。
3.根据权利要求2所述的方法,其中,所述工具类定义所述多个子任务流的多个任务节点分别对应的任务类型以及所述多个任务节点之间的关联关系。
4.根据权利要求3所述的方法,其中,所述工具类包括:客户端接口类、模块管理类、任务流模块类、网络请求工具类、有向无环图抽象类、有向无环图边类、有向无环图顶点类、任务定义类。
5.根据权利要求1-4中任一项所述的方法,其中,所述可编程式客户端被初始化有所述任务调度系统的网络地址,并且其中,所述向任务调度系统提交所创建的任务流包括:
经由所述网络地址向所述任务调度系统提交所创建的任务流。
6.如权利要求1所述的方法,其中,所述任务调度系统包括Dolphin Schedule系统。
7.一种任务流执行装置,包括:
第一模块,用于执行对可编程式客户端进行初始化的代码,其中,所述可编程式客户端被初始化以提供用于创建任务流的工具类;
第二模块,用于获取利用所述可编程式客户端的所述工具类进行编程而创建的任务流,其中,所述任务流包括与当前任务相关联的多个子任务流;以及
第三模块,用于向任务调度系统提交所创建的任务流,以使得所述任务调度系统执行与所述当前任务相关联的所述多个子任务流。
8.一种电子设备,包括:
处理器;以及
存储器,所述存储器存储有可被所述处理器执行的指令,所述指令在由所述处理器执行时,使所述处理器执行根据权利要求1-5中任一项所述的方法。
9.一种存储有指令的非瞬时计算机可读存储介质,所述指令在由处理器执行时,使所述处理器执行根据权利要求1-5中任一项所述的方法。
10.一种计算机程序产品,包括指令,其中,所述指令在被处理器执行时,使所述处理器执行根据权利要求1-5中任一项所述的方法。
CN202211603594.6A 2022-12-13 2022-12-13 任务流执行方法、装置、设备和介质 Pending CN116048670A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211603594.6A CN116048670A (zh) 2022-12-13 2022-12-13 任务流执行方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211603594.6A CN116048670A (zh) 2022-12-13 2022-12-13 任务流执行方法、装置、设备和介质

Publications (1)

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

Family

ID=86121349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211603594.6A Pending CN116048670A (zh) 2022-12-13 2022-12-13 任务流执行方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN116048670A (zh)

Similar Documents

Publication Publication Date Title
US10884808B2 (en) Edge computing platform
KR102220127B1 (ko) 커스터마이징된 소프트웨어 개발 키트(sdk) 생성을 위한 방법 및 장치
KR102243793B1 (ko) 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
US9354998B2 (en) Automated conformance and interoperability test lab
US9602599B2 (en) Coordinating application migration processes
US20070168971A1 (en) Multi-tiered model-based application testing
US20120078809A1 (en) Integrating sub-processes in business process modeling notation processes
Amaral et al. Cooperative middleware platform as a service for internet of things applications
US20190207867A1 (en) Platform with multiple execution engines
WO2022000888A1 (zh) 执行定制化人工智能生产线的装置和方法、设备和介质
WO2022222537A1 (zh) Ai应用部署方法及相关平台、集群、介质、程序产品
US20190205182A1 (en) Unified monitoring interface
WO2021093672A1 (zh) 外部系统的嵌入方法、工作流系统、设备及计算机可读存储介质
CN116048670A (zh) 任务流执行方法、装置、设备和介质
EP4235403A1 (en) Automatic generation of a cloud integration adapter from a standard, programming language-agnostic interface specification
US9525754B1 (en) Task-based approach to execution, monitoring and execution control of actions
Wettinger et al. Streamlining APIfication by generating APIs for diverse executables using any2API
US20240177114A1 (en) System for business process automation and method thereof
US20240012387A1 (en) Live streaming and recording of remotely executed robotic process automation workflows
Gao On Provisioning and configuring ensembles of IoT, network functions and cloud resources
Zhang DTM in the cloud—Device integration store
Jukan et al. Lab 3—Connecting Edge and Cloud Tools with AMQP
EP4374248A1 (en) Managing an app, especially developing an app comprising an event artifact, method and system
KR20230070992A (ko) Rpa 워크플로우의 프로세스 그래프에 대한 필터 인스턴스화

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