CN113220479B - 一种基于隔离网络的工作流调度方法、装置及电子设备 - Google Patents
一种基于隔离网络的工作流调度方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113220479B CN113220479B CN202110470113.8A CN202110470113A CN113220479B CN 113220479 B CN113220479 B CN 113220479B CN 202110470113 A CN202110470113 A CN 202110470113A CN 113220479 B CN113220479 B CN 113220479B
- Authority
- CN
- China
- Prior art keywords
- scheduling
- workflow
- module
- dependency
- task
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000002955 isolation Methods 0.000 title abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 18
- 230000001419 dependent effect Effects 0.000 claims description 44
- 238000004891 communication Methods 0.000 abstract description 9
- 230000000903 blocking effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 241001481833 Coryphaena hippurus Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000036962 time dependent Effects 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于隔离网络的工作流调度方法、装置及电子设备,所述方法包括:接收前端发送的工作流配置信息;所述工作流配置信息包括调度信息;对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;调度模块根据所述调度信息调度对应的工作流。本发明基于消息队列进行底层通信,将调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;在网络隔离的情况下,保证调度信息安全的同时达到跨堡垒机通信的目的。基于隔离网络集群的用户无需再登录堡垒机,能有效避免登录现有技术中登录堡垒机时间长和操作卡顿的问题。提高调度效率的同时提升了用户体验。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种基于隔离网络的工作流调度方法、装置、电子设备及计算机可读介质。
背景技术
一套完整的大数据服务平台内部的应用,通常都是由大量任务单元组成的。例如,shell脚本,java程序,mapreduce程序、hive脚本以及spark程序等,各任务单元之间存在时间先后及前后依赖关系,为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。
在工作流调度开源领域,有Airflow、Azkabane和DolphinScheduler等,这些系统都是通过http协议或者tcp协议进行通信。而http协议或者tcp协议主要依赖有线或者无线网络进行通信,其无法支持基于隔离网络的集群(比如隐私集群、独占集群等)的通信。而以往的开源调度系统主要部署在基于隔离网络的集群内部,基于隔离网络的集群内的用户进行任务开发、管理和调度时,需要先登录堡垒机、然后再登录windows客户端进行任务开发、管理和调度。整个过程的网络速度取决于堡垒机的带宽,而当堡垒机使用用户比较多时,不仅造成登录时间长,而且会出现windows客户端内操作卡顿的现象。
发明内容
本发明旨在解决现有工作流调度系统在隔离网络中需要跨堡垒机进行通信,导致登录时间长、操作卡顿的技术问题。
为了解决上述技术问题,本发明第一方面提出一种基于隔离网络的工作流调度方法,所述方法包括:
接收前端发送的工作流配置信息;所述工作流配置信息包括调度信息;
对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;
调度模块根据所述调度信息调度对应的工作流。
根据本发明一种优选的实施方式,所述工作流配置信息还包括:任务配置信息,前端通过接收用户对指定模块的操作生成所述任务配置信息,所述指定模块用于标识不同的任务。
根据本发明一种优选的实施方式,所述工作流配置信息还包括:依赖关系,所述依赖关系包括依赖对象和依赖属性;前端通过接收用户对依赖配置模块的操作生成依赖关系;所述依赖配置模块用于基于依赖关系库标识依赖对象和依赖属性。
根据本发明一种优选的实施方式,所述调度模块根据所述调度信息调度对应的工作流包括:
所述调度模块根据调度信息确定任务的调度间隔,并根据调度间隔将调度信息写入调度器的对应调度区;
调度器根据调度信息中的调度时刻调度对应的工作流,并根据调度时刻和调度信息所在的调度区更新下次调度时刻;
其中,调度器的不同调度区对应不同的调度间隔。
根据本发明一种优选的实施方式,所述接收前端发送的工作流配置信息之后,所述方法还包括:
将所述工作流配置信息发送给数据库服务器;
所述调度模块根据所述调度信息调度对应的工作流之后,所述方法还包括:
获取工作流参数;
根据工作流参数从数据库服务器中获取工作流生成工作流实例;
依次获取工作流实例各个子节点的任务类型,并根据任务类型执行子节点任务;
根据子节点任务的执行结果更新数据库服务器的任务状态。
根据本发明一种优选的实施方式,执行当前子节点任务之前,所述方法还包括:
判断当前子节点任务的前置依赖任务是否完成;
若当前子节点任务的前置依赖任务未完成,等待所述前置依赖任务完成后,替换时间参数并执行当前子节点任务。
为解决上述技术问题,本发明第二方面提供一种基于隔离网络的工作流调度装置,所述装置包括:
接收模块,用于接收前端发送的工作流配置信息;所述工作流配置信息包括调度信息;
发送模块,用于对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块。
根据本发明一种优选的实施方式,所述工作流配置信息还包括:任务配置信息,前端通过接收用户对指定模块的操作生成所述任务配置信息,所述指定模块用于标识不同的任务。
根据本发明一种优选的实施方式,所述工作流配置信息还包括:依赖关系,所述依赖关系包括依赖对象和依赖属性;前端通过接收用户对依赖配置模块的操作生成依赖关系;所述依赖配置模块用于基于依赖关系库标识依赖对象和依赖属性。
根据本发明一种优选的实施方式,所述发送模块还用于将所述工作流配置信息发送给数据库服务器。
为解决上述技术问题,本发明第三方面提供一种基于隔离网络的工作流调度系统,所述系统包括:如上述一项所述的基于隔离网络的工作流调度装置、部署在基于隔离网络的集群中的调度模块,以及数据库服务器。
为解决上述技术问题,本发明第四方面提供一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行上述的方法。
为解决上述技术问题,本发明第五方面提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现上述方法。
本发明基于消息队列进行底层通信,将调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;在网络隔离的情况下,保证调度信息安全的同时达到跨堡垒机通信的目的。基于隔离网络集群的用户无需再登录堡垒机,只需通过登录浏览器,在浏览器中进行任务开发、管理和调度,能有效避免登录现有技术中登录堡垒机时间长和操作卡顿的问题。提高调度效率的同时提升了用户体验。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是本发明实施例一种基于隔离网络的工作流调度方法的流程示意图;
图2a~2c是本发明前端生成工作流配置信息的示意图;
图3是本发明实施例另一种基于隔离网络的工作流调度方法的流程示意图;
图4是本发明实施例一种基于隔离网络的工作流调度装置的结构框架示意图;
图5是根据本发明的一种电子设备的示例性实施例的结构框图;
图6是本发明一种计算机可读介质实施例的示意图。
具体实施方式
现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
本发明实施例中,堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。
基于隔离网络的集群是至通过隔离网络技术与其他节点进行通信的集群,其可以是隐私集群、独占集群等。
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的。所有主要的编程语言均有与代理接口通讯的客户端库。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
请参阅图1,图1是本发明提供的一种基于隔离网络的工作流调度方法的流程图。如图1所示,所述方法包括:
S1、接收前端发送的工作流配置信息;
本发明实施例中,工作流是将数据平台中一组任务组织起来以特定的顺序执行以完成某个目标的过程,定义了任务的触发条件和触发顺序。每个任务可以由一个或多个系统完成。一个工作流包括一组任务及它们的相互顺序关系,还包括流程及任务的启动和终止条件,以及对每个任务的描述。
其中,所述工作流配置信息用于描述工作流中各个任务、各个任务的启动和终止、以及各个任务的执行顺序;可以包括任务配置信息、调度信息、依赖关系中的至少一个。所述任务配置信息用于描述各个任务,由组成工作流的多个任务组成。所述任务可以根据工作流整体要执行的任务进行配置,任务可以是:数据同步、结构化查询语言SQL任务等。所述调度信息用于描述各个任务被调度执行的情况,从而反映各个任务的启动和终止;可以包括:调度时刻、调度频率等。
在多任务协作中,避免不了不同任务之间相互依赖的问题。本发明实施例通过依赖关系描述当前工作流与其他任务,或者工作流之间的执行顺序。所述依赖关系可以包括依赖对象和依赖属性,所述依赖对象可以是其他的任务,或者其他的工作流。所述依赖属性可以包括前置依赖属性和后置依赖属性。只有当前置依赖属性的依赖对象执行完后,后置依赖属性的依赖对象才能开始被执行。在本发明实施例中,若当前工作流被其它的第一依赖对象依赖,则为当前工作流和第一依赖对象配置依赖关系;其中,当前工作流配置为前置依赖属性,表明当前工作流被第一依赖对象依赖;第一依赖对象配置为后置依赖属性,表明第一依赖对象需要依赖当前工作流。若当前工作流需要依赖其它的第二依赖对象,则为当前工作流和第二依赖对象配置依赖关系,其中,第二依赖对象配置为前置依赖属性,当前工作流配置为后置依赖属性。可以理解的是,同一个工作流可以配置前置依赖属性和后置依赖属性。即,该工作流既需要依赖一些依赖对象,也被另一些依赖对象依赖。
现有工作流调度系统中,用户需要通过配置python文件或者zip文件等方式在前端配置工作流配置信息,不但需要用户有一定的专业编程知识,而且费时费力,对数据开发造成很大不便。本发明为了方便用户在前端配置工作流配置信息,预先配置用于标识不同任务的指定模块,前端通过接收用户对指定模块的操作生成所述任务配置信息。其中,用户对指定模块的操作包括但不限于对指定模块的拖拽操作。如图2a,用户只需在前端浏览器中拖拽指定模块(比如图2a中的开始节点、SQL、结束节点等),即可完成工作流任务的配置,生成任务配置信息。
在工作流依赖方面,现有的工作流调度系统只能通过python文件、自定义脚本等对依赖关系进行配置和管理。这对用户来说很不方便。基于此,本发明实施例中,可以预先配置用于存储依赖对象的依赖关系库,优选的,所述依赖关系库根据依赖关系类型存储依赖对象,所述依赖关系类型包括:工作流依赖、Hadoop分布式文件系统hdfs依赖、库表依赖等。示例性的,库表依赖对应依赖对象可以是:数据库和数据表,工作流依赖对应的依赖对象可以是:工作流。同时,预先配置依赖配置模块,用于基于依赖关系库标识依赖对象和依赖属性。所述依赖关系可以包括依赖对象和依赖属性,所述依赖属性可以包括前置依赖属性和后置依赖属性。前端通过接收用户对依赖配置模块的操作生成依赖关系。在一种示例中,如图2b,依赖配置模块可以以下拉列表的方式显示依赖数据库中不同类型的依赖关系、各依赖关系对应的依赖对象、以及各依赖对象的依赖属性。用户对依赖配置模块的操作可以是对下拉列表中依赖关系、依赖对象、依赖属性的选取操作。显然,下拉列表只是一种显示方式的举例,并不构成对本发明实施例的任何限定。进一步的,依赖配置模块还可以显示并根据用户操作配置依赖检测时间,通过配置依赖检测时间可以定时检测当前工作流前置属性的依赖对象是否执行完成。本发明实施例通过配置库表依赖、hdfs依赖、工作流依赖的依赖数据库和依赖配置模块让用户在前端浏览器上进行选择和输入就能配置工作流依赖。支持根据工作流依赖、hdfs依赖、库表依赖等生成工作流依赖,使得开发人员编辑和组织工作流依赖非常方便,大大提高了数据开发效率。
本发明实施例还可以通过前端调度模块配置各个任务或者工作流的调度时刻、调度频率等调度信息。如图2c,前端调度模块可以以下拉列表的方式显示调度频率和调度时刻。其中,调度频率可以是周期性的。用户在前端浏览器中通过鼠标点击选取调度时刻和频率,从而完成定时任务或者工作流的调度信息配置。相较于用户在linux中配置crontab,本发明实施例的前端调度模块更方便、更友好。
进一步的,对于不定时的任务或者工作流,本发明实施例可以预先配置时间参数,通过时间参数配置调度时刻。比如,对于SQL任务,可以预先配置时间参数,所述时间参数用于描述当前时间与最近一次调度时刻的关系。比如图2b中的时间参数“pday、pday2”等,通过预先配置的时间参数可以简化SQL任务对应工作流的配置、开发。
此外,在接收到前端发送的工作流配置信息之后,还可以将所述工作流配置信息发送给数据库服务器,以便后续从数据库服务器中获取工作流任务,从而执行该工作流任务。所述数据库服务器可以是mysql关系型数据库服务器。
S2、对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;
其中,所述加密处理包括但不限于鉴权机制、密钥处理等。本发明实施例通过对调度信息进行加密处理来保证调度信息在传输过程中的安全性。所述消息队列(MessageQueue,MQ)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。本发明实施例中消息队列优选为基于RabbitMQ的消息队列。其中,RabbitMQ是一个由Erlang语言开发的高级消息队列协议(Advanced Message Queue,AMQP)的开源实现。
本发明实施例在网络隔离的情况下,对调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;保证调度信息安全的同时达到跨堡垒机通信的目的。这样,处于网络隔离下的基于隔离网络的集群的用户无需再登录堡垒机,只需通过登录浏览器,在浏览器中进行任务开发、管理和调度。提高调度效率的同时提升了用户体验。
此外,本发明实施例还可以在基于隔离网络的集群中部署多个调度模块,多个调度模块通过分布式锁竞争获取调度信息,竞争到锁的调度模块才会去执行步骤S3中的工作流调度,从而实现调度模块高可用和避免重复调度。所述分布式锁可以是:Zookeeper分布式锁、数据库分布式锁、缓存分布式锁等。
S3、调度模块根据所述调度信息调度对应的工作流。
示例性的,所述调度模块根据调度信息确定任务的调度间隔;根据调度间隔将调度信息写入调度器的对应调度区;调度器根据调度信息中的调度时刻调度对应的工作流,并根据调度时刻和调度信息所在的调度区更新下次调度时刻。其中,调度器的不同调度区对应不同的调度间隔。所述调度间隔可以是:小时、日、周、月等。调度信息包括调度时刻,调度频率。调度模块根据调度频率判断任务的调度间隔,所述调度间隔指相邻两个调度时刻之间的间隔时间。
本发明实施例根据调度间隔将调度器分为多个调度区,通过分区调度的方式实现了工作流按月、周、天、小时等自定义日期时间调度,使调度更为灵活。
进一步的,所述方法还可以包括:
S4、获取工作流参数;
所述工作流参数用于从数据库服务器中获取工作流任务,其可以是预先配置的用于标识不同工作流任务的参数。
S5、根据工作流参数从数据库服务器中获取工作流生成工作流实例;
其中,工作流实例由多个子节点组成。
S6、依次获取工作流实例各个子节点的任务类型,并根据任务类型执行子节点任务;
所述任务类型可以是:Spark任务或者Hive。
本发明实施例中,在执行当前子节点任务之前,所述方法还包括:
判断当前子节点任务的前置依赖属性任务是否完成;
若当前子节点任务的前置依赖属性任务未完成,等待所述前置依赖属性任务完成后,替换时间参数并执行当前子节点任务。
S7、根据子节点任务的执行结果更新数据库服务器的任务状态。
图3是本发明实施例另一种基于隔离网络的工作流调度方法的流程图。如图3所示,所述方法包括:
S301、前端接收用户对预定模块的操作生成工作流配置信息,并将工作流配置信息提交至后端。
所述工作流配置信息用于描述工作流中各个任务、各个任务的启动和终止、以及各个任务的执行顺序;可以包括任务配置信息、调度信息、依赖关系中的至少一个。
所述预定模块包括:用于标识不同任务的指定模块。前端通过接收用户对指定模块的操作生成所述任务配置信息。其中,用户对指定模块的操作包括但不限于对指定模块的拖拽操作。
所述预定模块还包括:依赖配置模块,用于基于依赖关系库配置当前工作流的依赖关系。前端通过接收用户对依赖配置模块的操作生成依赖关系。依赖配置模块可以以下拉列表的方式显示不同类型的依赖关系、各依赖关系对应的依赖对象、以及各依赖对象的依赖属性。用户对依赖配置模块的操作可以是对下拉列表中依赖关系、依赖对象、依赖属性的选取操作。
所述预定模块还包括:调度配置模块,用于配置各个任务或者工作流的调度时刻、调度频率等调度信息。用户对调度配置模块的操作可以是通过鼠标点击选取调度时刻和频率,从而完成定时任务或者工作流的调度信息配置。
S302、后端将工作流配置信息存储至数据库服务器,
S303、后端对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块。
本发明实施例中消息队列优选为基于RabbitMQ的消息队列。其中,RabbitMQ是一个由Erlang语言开发的高级消息队列协议(Advanced Message Queue,AMQP)的开源实现。
S304、调度模块根据调度信息确定工作流的调度间隔;根据调度间隔将调度信息写入调度器的对应调度区;
示例性的,调度模块中的第一模块接收后端发送的调度信息并进行判断和处理,调用调度模块的第二模块。
第二模块接收到调度信息之后,根据调度频率判断调度信息是月、周、日和小时调度中的哪种调度间隔。根据不同的调度间隔将调度信息写入调度器的对应调度区。
S305、调度器根据调度信息中的调度时刻调度对应的工作流,并根据调度时刻和调度信息所在的调度区更新下次调度时刻。
调度器根据配置的调度信息,在指定的调度时刻调度对应的工作流,并根据调度时刻和调度信息所在的调度区更新下次调度时刻,更新过程中整个调度信息维护在内存中。如果调度器重启,需要重新从数据库服务器中将调度信息维护到调度器中。
S306、调度器在工作流调度时刻传入工作流参数执行调度
调度器在判断某个工作流的调度时刻到来时,调用第三模块并传入工作流参数。所述工作流参数用于从数据库服务器中获取工作流任务,其可以是系统预先配置的用于标识不同工作流任务的参数。
S307、第三模块根据工作流参数从数据库服务器中获取工作流生成工作流实例,根据工作流实例的子节点类型确定工作流执行模块。
第三模块被调度器调用之后,根据传入的工作流参数从数据库服务器中获取工作流并执行工作流从而生成一个工作流实例。如果一个工作流执行多次,会生成多个工作流实例。所述工作流实例由多个子节点组成。
示例性的,执行工作流实例后,获取工作流实例的start节点并设置start节点的开始执行时间和结束执行时间,接着获取start节点的子节点,并判断子节点的任务类型。根据子节点的任务类型确定工作流执行模块,由工作流执行模块执行对应的子节点任务。本发明实施例中,工作流执行模块可以是:SparkEngine模块,或者和HiveEngine模块。
S308、工作流执行模块执行子节点任务
SparkEngine模块和HiveEngine模块是真正执行子节点任务的地方。在执行子节点任务前会判断当前子节点任务的前置依赖属性任务是否完成,若当前子节点任务的前置依赖属性任务未完成,等待所述前置依赖属性任务完成后,替换时间参数将并执行当前子节点任务。
S309、工作流执行模块执行完成,更新数据库服务器中的数据
SparkEngine模块和HiveEngine模块在子节点任务执行完成后,根据执行结果成功或者失败,更新数据库服务器中的任务状态。
图4是本发明一种基于隔离网络的工作流调度装置的架构示意图,如图4所示,所述装置包括:
接收模块41,用于接收前端发送的工作流配置信息;所述工作流配置信息包括调度信息;
发送模块42,用于对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块。
可选的,所述工作流配置信息还包括:任务配置信息,前端通过接收用户对指定模块的操作生成所述任务配置信息,所述指定模块用于标识不同的任务。
可选的,所述工作流配置信息还包括:依赖关系,所述依赖关系包括依赖对象和依赖属性;前端通过接收用户对依赖配置模块的操作生成依赖关系;所述依赖配置模块用于基于依赖关系库标识依赖对象和依赖属性。
进一步的,所述发送模块还用于将所述工作流配置信息发送给数据库服务器。
本发明实施例还提供一种基于隔离网络的工作流调度系统,所述系统包括上述任一项所述的基于隔离网络的工作流调度装置、部署在基于隔离网络的集群中的调度模块,以及数据库服务器。
所述调度模块包括:依次连接的第一模块、第二模块、调度器、和第三模块。
所述第一模块接收后端发送的调度信息并进行判断和处理,调用调度模块的第二模块。
第二模块接收到调度信息之后,根据调度频率判断调度信息是月、周、日和小时调度中的哪种调度间隔。根据不同的调度间隔将调度信息写入调度器的对应调度区。
调度器根据调度信息中的调度时刻调度对应的工作流,并根据调度时刻和调度信息所在的调度区更新下次调度时刻。调度器在判断某个工作流的调度时刻到来时,调用第三模块并传入工作流参数。
第三模块被调度器调用之后,根据传入的工作流参数从数据库服务器中获取工作流并执行工作流从而生成一个工作流实例。如果一个工作流执行多次,会生成多个工作流实例。所述工作流实例由多个子节点组成。地第三模块根据子节点的任务类型确定工作流执行模块,由工作流执行模块执行对应的子节点任务。本发明实施例中,工作流执行模块可以是:SparkEngine模块,或者和HiveEngine模块。
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图5是根据本发明的一种电子设备的示例性实施例的结构框图。图5显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,该示例性实施例的电子设备500以通用数据处理设备的形式表现。电子设备500的组件可以包括但不限于:至少一个处理单元510、至少一个存储单元520、连接不同电子设备组件(包括存储单元520和处理单元510)的总线530、显示单元540等。
其中,所述存储单元520存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元510执行,使得所述处理单元510执行本发明各种实施方式的步骤。例如,所述处理单元510可以执行如图1所示的步骤。
所述存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。所述存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作电子设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备500也可以与一个或多个外部设备100(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备100与该电子设备500交互,和/或使得该电子设备500能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(I/O)接口550进行,还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器560可以通过总线530与电子设备500的其它模块通信。应当明白,尽管图5中未示出,电子设备500中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID电子设备、磁带驱动器以及数据备份存储电子设备等。
图6是本发明的一个计算机可读介质实施例的示意图。如图6所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的电子设备、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:接收前端发送的工作流配置信息;所述工作流配置信息包括调度信息;对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;调度模块根据所述调度信息调度对应的工作流。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行电子设备、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语音的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语音包括面向对象的程序设计语音—诸如Java、C++等,还包括常规的过程式程序设计语音—诸如“C”语音或类似的程序设计语音。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现本发明的一些或者全部功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种基于隔离网络的工作流调度方法,其特征在于,所述方法包括:
接收前端发送的工作流配置信息;所述工作流配置信息包括调度信息;其中:前端预先配置用于标识不同任务的指定模块;通过接收用户对预定模块的操作生成工作流配置信息;所述预定模块包括:指定模块、依赖配置模块和前端调度模块,用户对指定模块的操作为拖拽操作;
对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;
调度模块根据调度频率确定任务的调度间隔;根据调度间隔将调度信息写入调度器的对应调度区;调度器根据调度信息中的调度时刻调度对应的工作流,并根据调度时刻和调度信息所在的调度区更新下次调度时刻;其中,调度器的不同调度区对应不同的调度间隔,所述调度间隔指相邻两个调度时刻之间的间隔时间。
2.根据权利要求1所述的方法,其特征在于,所述工作流配置信息还包括:任务配置信息,前端通过接收用户对指定模块的操作生成所述任务配置信息。
3.根据权利要求2所述的方法,其特征在于,所述工作流配置信息还包括:依赖关系,所述依赖关系包括依赖对象和依赖属性;前端通过接收用户对依赖配置模块的操作生成依赖关系;所述依赖配置模块用于基于依赖关系库标识依赖对象和依赖属性。
4.根据权利要求3所述的方法,其特征在于,所述接收前端发送的工作流配置信息之后,所述方法还包括:
将所述工作流配置信息发送给数据库服务器;
所述调度模块根据所述调度信息调度对应的工作流之后,所述方法还包括:
获取工作流参数;
根据工作流参数从数据库服务器中获取工作流生成工作流实例;
依次获取工作流实例各个子节点的任务类型,并根据任务类型执行子节点任务;
根据子节点任务的执行结果更新数据库服务器的任务状态。
5.根据权利要求4所述的方法,其特征在于,执行当前子节点任务之前,所述方法还包括:
判断当前子节点任务的前置依赖任务是否完成;
若当前子节点任务的前置依赖任务未完成,等待所述前置依赖任务完成后,替换时间参数并执行当前子节点任务。
6.一种基于隔离网络的工作流调度装置,其特征在于,所述装置包括:
接收模块,用于接收前端发送的工作流配置信息;所述工作流配置信息包括调度信息;其中:前端预先配置用于标识不同任务的指定模块;通过接收用户对预定模块的操作生成工作流配置信息;所述预定模块包括:指定模块、依赖配置模块和前端调度模块;用户对指定模块的操作为拖拽操作;
发送模块,用于对所述调度信息进行加密处理并通过消息队列发送给部署在基于隔离网络的集群中的调度模块;
所述调度模块根据调度频率确定任务的调度间隔;根据调度间隔将调度信息写入调度器的对应调度区;调度器根据调度信息中的调度时刻调度对应的工作流,并根据调度时刻和调度信息所在的调度区更新下次调度时刻;其中,调度器的不同调度区对应不同的调度间隔,所述调度间隔指相邻两个调度时刻之间的间隔时间。
7.根据权利要求6所述的装置,其特征在于,所述工作流配置信息还包括:任务配置信息,前端通过接收用户对指定模块的操作生成所述任务配置信息,所述指定模块用于标识不同的任务。
8.根据权利要求7所述的装置,其特征在于,所述工作流配置信息还包括:依赖关系,所述依赖关系包括依赖对象和依赖属性;前端通过接收用户对依赖配置模块的操作生成依赖关系;所述依赖配置模块用于基于依赖关系库标识依赖对象和依赖属性。
9.根据权利要求6所述的装置,其特征在于,所述发送模块还用于将所述工作流配置信息发送给数据库服务器。
10.一种基于隔离网络的工作流调度系统,其特征在于,所述系统包括:如权利要求6-9任一项所述的基于隔离网络的工作流调度装置、部署在基于隔离网络的集群中的调度模块,以及数据库服务器。
11.一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行根据权利要求1-5中任一项所述的方法。
12.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110470113.8A CN113220479B (zh) | 2021-04-28 | 2021-04-28 | 一种基于隔离网络的工作流调度方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110470113.8A CN113220479B (zh) | 2021-04-28 | 2021-04-28 | 一种基于隔离网络的工作流调度方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220479A CN113220479A (zh) | 2021-08-06 |
CN113220479B true CN113220479B (zh) | 2023-11-10 |
Family
ID=77089833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110470113.8A Active CN113220479B (zh) | 2021-04-28 | 2021-04-28 | 一种基于隔离网络的工作流调度方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220479B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115526578A (zh) * | 2021-11-26 | 2022-12-27 | 北京字跳网络技术有限公司 | 生成项目流的方法、装置、电子设备及存储介质 |
CN114416126B (zh) * | 2022-01-30 | 2024-05-24 | 重庆长安汽车股份有限公司 | 一种智能推荐训练服务基于Dolphinscheduler的部署方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532838A (zh) * | 2013-10-09 | 2014-01-22 | 中国联合网络通信集团有限公司 | 一种隔离网间实现数据交换的方法及系统 |
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及系统 |
CN110365663A (zh) * | 2019-06-28 | 2019-10-22 | 北京淇瑀信息科技有限公司 | 一种隔离集群之间的访问方法、装置及电子设备 |
US10469330B1 (en) * | 2012-06-15 | 2019-11-05 | Amazon Technologies, Inc. | Client account versioning metadata manager for cloud computing environments |
CN111130820A (zh) * | 2018-10-30 | 2020-05-08 | 阿里巴巴集团控股有限公司 | 集群管理方法、装置及计算机系统 |
CN111190932A (zh) * | 2019-12-16 | 2020-05-22 | 北京淇瑀信息科技有限公司 | 一种隐私集群查询方法、装置及电子设备 |
CN111954009A (zh) * | 2020-07-29 | 2020-11-17 | 中国电子科技集团公司第十五研究所 | 跨网络域的视频数据推送系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0427133D0 (en) * | 2004-12-10 | 2005-01-12 | British Telecomm | Workflow scheduler |
US20150067028A1 (en) * | 2013-08-30 | 2015-03-05 | Indian Space Research Organisation | Message driven method and system for optimal management of dynamic production workflows in a distributed environment |
US9575820B2 (en) * | 2014-06-27 | 2017-02-21 | Amazon Technologies, Inc. | Client control in a distributed strict queue |
US20180307533A1 (en) * | 2017-04-21 | 2018-10-25 | Intel Corporation | Faciltating multi-level microcontroller scheduling for efficient computing microarchitecture |
-
2021
- 2021-04-28 CN CN202110470113.8A patent/CN113220479B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10469330B1 (en) * | 2012-06-15 | 2019-11-05 | Amazon Technologies, Inc. | Client account versioning metadata manager for cloud computing environments |
CN103532838A (zh) * | 2013-10-09 | 2014-01-22 | 中国联合网络通信集团有限公司 | 一种隔离网间实现数据交换的方法及系统 |
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及系统 |
CN111130820A (zh) * | 2018-10-30 | 2020-05-08 | 阿里巴巴集团控股有限公司 | 集群管理方法、装置及计算机系统 |
CN110365663A (zh) * | 2019-06-28 | 2019-10-22 | 北京淇瑀信息科技有限公司 | 一种隔离集群之间的访问方法、装置及电子设备 |
CN111190932A (zh) * | 2019-12-16 | 2020-05-22 | 北京淇瑀信息科技有限公司 | 一种隐私集群查询方法、装置及电子设备 |
CN111954009A (zh) * | 2020-07-29 | 2020-11-17 | 中国电子科技集团公司第十五研究所 | 跨网络域的视频数据推送系统 |
Non-Patent Citations (5)
Title |
---|
6TiSCH: Industrial Performance for IPv6 Internet-of-Things Networks;Xavier Vilajosana;Thomas Watteyne;Mališa Vučinić;Tengfei Chang;Kristofer S. J. Pister;Proceedings of the IEEE;第107卷(第6期);全文 * |
Hadoop集群作业调度算法优化技术研究;单冬红;郭静博;赵伟艇;;现代电子技术(第06期);全文 * |
Zhangqin Huang ; Shuo Zhang ; Han Gao ; Xiaobo Zhang ; Shengqi Yang.A configurable multiplex data transfer model for asynchronous and heterogeneous FPGA accelerators on single DMA device.Microprocessors and Microsystems.2020,第77卷全文. * |
可扩展工作流模型的信访业务协同处理系统;韩坚华;李藜;杨安宸;赵锐;;计算机工程与应用(第16期);全文 * |
基于ARM-Linux的1553B仿真测试前端系统;王彬;张涛;;电子设计工程(第20期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113220479A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11244233B2 (en) | Intelligent adaptor service in unified automation platforms for robotic process automation | |
EP3543866B1 (en) | Resource-efficient record processing in unified automation platforms for robotic process automation | |
US20210117895A1 (en) | Systems and Methods for Cross-Platform Scheduling and Workload Automation | |
US10521195B1 (en) | Guided definition of an application programming interface action for a workflow | |
US10860007B2 (en) | Smart resource manager in unified automation platforms for robotic process automation | |
EP3617884B1 (en) | Adapter extension for inbound messages from robotic automation platforms to unified automation platform | |
US11240344B2 (en) | Integration of remote software applications into a workflow | |
US11876817B2 (en) | Modeling queue-based message-oriented middleware relationships in a security system | |
US11818152B2 (en) | Modeling topic-based message-oriented middleware within a security system | |
US8141078B2 (en) | Providing shared tasks amongst a plurality of individuals | |
US20160041846A1 (en) | Providing configurable workflow capabilities | |
US10101972B1 (en) | Data modelling and flow engine for building automated flows within a cloud based developmental platform | |
CN113220479B (zh) | 一种基于隔离网络的工作流调度方法、装置及电子设备 | |
US20090157872A1 (en) | Model-based composite application platform | |
US11635752B2 (en) | Detection and correction of robotic process automation failures | |
US20090165021A1 (en) | Model-Based Composite Application Platform | |
US7996893B2 (en) | Determining roles for automated tasks in a role-based access control environment | |
US20200089524A1 (en) | Wait a duration timer action and flow engine for building automated flows within a cloud based development platform | |
US20220357940A1 (en) | Proactive Notifications for Robotic Process Automation | |
CA2857897C (en) | Business rules batch processor | |
CN113220431A (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN111190732A (zh) | 定时任务处理系统及方法、存储介质和电子设备 | |
US7950011B2 (en) | Leveraging advanced queues to implement event based job scheduling | |
CN114787836A (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 |