一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种工作流调度系统、方法及设备与流程

2022-03-16 04:00:15 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种工作流调度系统、方法及设备。


背景技术:

2.工作流(workflow),通常是指业务过程的部分或整体在计算机应用下的自动化,以实现在多个参与者之间按照预定义的规则自动传递文档、信息或任务,从而实现预期的业务目标,或者促使此目标的实现。
3.因此,目前亟需一种工作流调度系统,以实现对于工作流的有效调度。


技术实现要素:

4.本技术提供了一种工作流调度系统,用于实现对工作流的有效调度。此外,本技术还提供了上述系统对应的方法、设备、计算机可读存储介质以及计算机程序产品。
5.第一方面,本技术提供给了一种工作流调度系统,该系统包括:存储模块、管理模块以及执行模块,所述管理模块分别与所述执行模块以及所述存储模块连接;其中,所述存储模块,用于存储工作流以及所述工作流的状态;所述管理模块,用于将所述存储模块中的所述工作流分配给执行模块,并根据接收到的所述工作流的执行结果确定所述工作流的状态,向所述存储模块发送所述工作流的状态;所述执行模块,用于执行所述工作流,得到所述工作流的执行结果,并向所述管理模块发送所述执行结果。
6.如此,基于该工作流调度系统,可以实现对于工作流的有效调度,并且,实现上述工作流调度系统所需的组件对于环境、数据库引擎的依赖性较小,对于部署该工作流调度系统的设备的要求较低(如可以不用要求部署该工作流调度系统的设备具备特定的规格和型号等),从而使得工作流调度系统可以达到轻量级的水平。进一步的,执行模块可以根据实际应用的需求动态定义工作流,这使得工作流的定义过程可以摆脱基于工作流模板定义工作流的局限性。
7.其中,执行模块例如包括但不限于为执行工作流的客户端,存储模块包括但不限于为数据库等。而被调度的工作流,可以是基于定时任务的工作流,也可以是基于非定时任务的工作流。
8.在一种可能的实施方式中,所述执行模块,还可以用于创建所述工作流,并向所述管理模块发送所述工作流;接收所述执行模块发送的所述工作流,并向所述存储模块发送所述工作流。在该实施方式中,执行模块在具有执行工作流的功能的同时,还可以具有创建工作流的功能,从而工作流的创建者与执行者合一。
9.在一种可能的实施方式中,所述系统还包括:创建模块,创建模块用于创建所述工作流,并向所述管理模块发送所述工作流;所述管理模块,还用于:接收所述创建模块发送的所述工作流,并向所述存储模块发送所述工作流。在该实施方式中,工作流的创建者以及执行者可以是两个模块或者两个实体,分别用于执行不同的功能。
10.在一种可能的实施方式中,所述管理模块,还用于:当确定所述工作流执行完成
时,将所述工作流的状态发送给所述创建模块。在该实施方式中,管理模块还可以将工作流的状态发送给创建模块,以便于创建模块能够根据该工作流的状态确定是否执行进一步操作。比如,当工作流的状态为失败(failed)时,创建模块可以重新创建工作流,以便通过执行新创建的工作流来实现预期服务或者目标。
11.在一种可能的实施方式中,所述系统还包括:信息解析模块,用于根据所述存储模块对应的预设规则调整所述管理模块的工作流的数据结构,并向管理模块发送调整后的工作流。在该实施方式中,通过信息解析模块,可以将管理模块与其他模块之间的通信数据进行格式转换,从而使得管理模块以及其他模块能够识别出其所接收到的数据。
12.在一种可能的实施方式中,所述管理模块,具体用于:从所述存储模块中读取所述工作流,将所述工作流加入分配队列,并且当接收到来自所述执行模块的工作流执行请求时,向所述执行模块发送所述分配队列中的所述工作流。在该实施方式中,管理模块将接收到的工作流发送存储模块中进行存储,而在使用工作流时,再从存储模块中进行读取。这样,虽然管理模块中的分配队列所能支持的工作流定义文件的数量有限,但是,管理模块利用存储模块存储该较多数量的工作流定义文件,并在后续处理过程中,再从存储模块中读取并处理工作流,如此可以避免工作流的处理丢失。
13.第二方面,本技术实施例还提供了一种工作流调度方法,所述方法包括:管理模块将存储模块中存储的工作流分配给执行模块;所述管理模块根据接收到所述工作流对应的执行结果确定所述工作流的状态;所述管理模块将所述工作流的状态发送至所述存储模块中进行存储。
14.在一种可能的实施方式中,所述方法还包括:所述管理模块接收创建模块或所述执行模块发送的所述工作流;所述管理模块将所述工作流发送至所述存储模块中进行存储。
15.在一种可能的实施方式中,所述方法还包括:所述管理模块在确定所述工作流执行完成时,向所述创建模块发送所述工作流的状态。
16.在一种可能的实施方式中,所述工作流预先经过数据结构调整。
17.在一种可能的实施方式中,所述管理模块将存储模块中存储的工作流分配给执行模块,包括:所述管理模块从所述存储模块中读取所述工作流;所述管理模块将所述工作流加入分配队列;当接收到来自所述执行模块的工作流执行请求时,所述管理模块向所述执行模块发送所述分配队列中的所述工作流。
18.第三方面,本技术提供一种设备,所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得设备执行如第二方面或第二方面的任一种实现方式中的工作流调度方法。
19.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第二方面或第二方面的任一种实现方式所述的工作流调度方法。
20.第五方面,本技术提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第二方面或第二方面的任一种实现方式所述的工作流调度方法。
21.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
22.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
23.图1为本技术实施例提供的一示例性工作流调度系统框架示意图;
24.图2为本技术实施例中另一种工作流调度系统框架示意图;
25.图3为本技术实施例中一种工作流调度方法流程示意图;
26.图4为本技术实施例中一种设备的硬件结构示意图。
具体实施方式
27.本技术实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
28.参见图1,为本技术实施例中一种示例性的工作流调度系统的架构示意图。
29.如图1所示,工作流调度系统100至少可以包括执行模块101、管理模块102以及存储模块103。
30.其中,执行模块101与管理模块102可以位于不同的设备中,如执行模块101可以位于终端或者服务器1上,而管理模块102可以位于服务器2上。该执行模块101例如可以是执行工作流的客户端等。同时,管理模块102可以与存储模块103位于同一服务器上,也可以是与存储模块103位于不同服务器。
31.本实施例中,存储模块103中可以存储有工作流,该工作流例如可以是某个服务的操作流程,当然也可以是其它可能的自动化处理流程,本实施例对此并不进行限定,并且,该工作流可以是定时任务的工作流,也可以是非定时任务的工作流。示例性的,该存储模块103具体可以是数据库或者是其它形式的具有存储能力的功能模块等。
32.实际应用中,该存储模块103中存储的工作流,可以是由管理模块102发送的。作为一种示例,执行模块101可以创建出工作流,并将创建出的工作流发送给管理模块102,从而管理模块102可以将接收到的工作流再转发至存储模块103中进行保存。此时,执行模块101可以执行自身所创建的工作流,也可以是执行其它模块所创建的工作流。
33.而在其它可能的示例中,执行模块101也可以不具有创建工作流的功能,此时,系统100还可以包括创建模块104,该创建模块104可以用于创建工作流,并将所创建的工作流发送给管理模块102,以便于管理模块102再将工作流转发给存储模块103中进行保存。其中,执行模块101与创建模块104,可以位于同一设备中,也可以是位于不同设备。图1中是以执行模块与创建模块位于同一设备为例进行示例性说明。
34.本实施例中,执行模块101或创建模块104在创建工作流时,具体可以是生成工作流的定义文件,该定义文件中可以包含流程逻辑的可执行代码段。示例性的,该可执行代码段中可以包括待处理数据的元数据、针对于该待处理数据的处理方法以及上下文(context)等,其中,定义文件中的context可以用于工作流中多个任务(task)之间的数据共享。当然,工作流定义文件中还可以是包括其它信息等,本实施例对此并不进行限定。这样,执行模块101或者创建模块104可以根据实际应用中对于流程逻辑的需要动态定义并生
成工作流,以此可以提高创建工作流的灵活性。
35.当然,执行模块101或者创建模块104在创建工作流时,也可以是基于预先设定的工作流模板进行创建。具体的,执行模块101或者创建模块104,可以是根据实际应用中所需的流程逻辑从多个工作流模板中选择与该流程逻辑相匹配的工作流模板,然后,通过对选择的工作流模板进行实例化,如进行参数赋值等,可以实现创建工作流。其中,不同工作流模板可以对应于不同的流程逻辑,而执行模块101或创建模块104对于工作流模板的选择,具体可以是基于用户对工作流模板的选择操作进行确定,当然,也可以是有执行模块101或创建模块104自主选择,本实施例对此并不进行限定。
36.管理模块102,可以读取存储模块103中存储的工作流,并将所读取的工作流分配给执行模块。实际应用中,执行模块的数量也可以具有多个,并且多个执行模块均可以执行管理模块102中的工作流。例如,在图2所示的分布式工作流调度场景中,执行模块a与执行模块b均可以执行管理模块a中的工作流,执行模块b与执行模块c均可以执行管理模块b中的工作流,而同一时刻可以仅有一个执行模块执行该工作流。为此,本实施例中,对于管理模块101从存储模块103中读取的工作流,可以是由多个执行模块竞争执行。相应的,管理模块102可以将读取的工作流分配给执行模块101(此时,执行模块101可以从多个执行模块中竞争到工作流的执行资格)。当然,管理模块102中的工作流,也可以是只允许一个执行模块执行,如图2中,管理模块c中的工作流,可以只允许执行模块c执行等。实际应用中,对于不同执行模块所能执行管理模块中的工作流的执行权限,可以是预先进行静态配置,也可以是动态调整,本实施例对此并不进行限定。其中,图2所示的多个执行模块,可以位于同一个设备,也可以是位于不同设备。
37.作为一种示例,管理模块102可以包括工作流的分配队列,并且,管理模块102从存储模块103中读取的工作流可以添加至该分配队列中。执行模块101在执行工作流之前,可以向管理模块102发送工作流执行请求,以请求管理模块102为该执行模块101分配工作流。相应的,管理模块102根据接收到的工作流执行请求,将该分配队列中的工作流分配给执行模块101,以便由执行模块101执行该工作流。若此时分配队列为空,即分配队列中没有工作流,则管理模块102可以不向执行模块101返回响应,或者是向执行模块101返回无工作流的响应等。
38.执行模块101在接收到工作流后,可以执行该工作流,具体可以是执行该工作流的定义文件中的可执行代码段,以执行相应的流程逻辑。执行模块101执行工作流时,会生成相应的执行结果,则,执行模块还可以将该执行结果反馈给管理模块102。
39.管理模块102在接收到工作流的执行结果后,可以确定该工作流的状态并进行状态更新。其中,工作流的状态可以包括预约(scheduled)、运行(running)、完成(completed)、失败(failed)、跳过(skipped)以及暂停(pasued)等状态。比如,当管理模块102将工作流分配给执行模块101时,该工作流的状态例如可以是处于running状态,而当管理模块102接收到的执行结果表征该工作流成功执行时,该工作流管理模块102可以确定该工作流当前的状态应当为completed状态,并将该工作流的状态由running状态更新为completed状态。当然,管理模块102接收到的执行结果,也可能表征该工作流执行失败或者暂停执行等,此时,管理模块102可以将工作流的状态更新为failed状态或者pasued状态等。
40.然后,管理模块102可以将工作流的状态发送给存储模块103,以使得存储模块103存储工作流的状态信息。当然,该工作流在执行过程中,管理模块102也可以是将该工作流的状态发送至存储模块103中进行存储,比如,管理模块102在将工作流分配给执行模块101进行执行时,可以将工作流的状态running发送给存储模块103进行存储。
41.实际应用中,存储模块103在存储工作流的相关信息(如定义文件或者状态信息等)时,可以对工作流的相关信息进行访问锁定,这样,存储于存储模块103中的工作流,可以只允许特定对象进行访问,而不允许其他对象进行访问。比如,在如图2所示的分布式工作流调度系统中,管理模块a、b以及c均可以访问存储模块103中的工作流,但是,通过对管理模块a所处理的工作流进行锁定后,管理模块b和c不具有访问该工作流的相关信息的权限,如管理模块b和c可能无法从存储模块103中获知该工作流的定义文件或者状态信息。但是,在一些实施方式中,管理模块b和管理模块c可以访问数据库中的其它工作流的相关信息,如数据库中未被锁定的工作流相关信息,或者具有访问权限的工作流状态的信息。
42.进一步的,存储模块103中工作流的相关信息还可以被解除锁定。比如,当该工作流被执行模块a成功执行并处于completed状态后,该工作流的相关信息的访问权限可以被解除锁定,此时,管理模块b和c可以具有访问该工作流的相关信息的权限。示例性的,存储模块103中工作流相关信息的锁定与解锁,可以是由管理模块进行触发执行,当然,也可以是由其他对象执行,本实施例对此并不进行限定。
43.另外,管理模块102在确定工作流执行结束后,可以将工作流的最终状态返回给执行模块101(在该场景中执行模块101创建了工作流)或者创建模块104,以通知执行模块101或者创建模块104该工作流的执行情况。示例性的,该工作流的最终状态可以包括completed或者failed等状态,当然,也可以是其它状态,本实施例对此并不限定。这样,执行模块101或者创建模块104在确定工作流的状态后,可以根据该状态执行预设操作,比如,当工作流的状态表征该工作流执行失败后,为实现该工作流所对应的服务或者目标,执行模块101或者创建模块104可以重新创建工作流,并由执行模块101执行新创建的工作流等,以此实现完成预期的服务或者目标。
44.在一些可能的场景中,存储模块103在存储工作流的定义文件时,可以对于工作流的定义文件具有一定的格式要求,比如,当存储模块103具体为数据库时,该数据库在存储工作流的定位文件之前,可以要求该工作流的定位文件的数据结构符合该数据库的入库标准。
45.基于此,示例性的,工作流调度系统100还可以包括信息解析模块105,该信息解析模块105可以对执行模块101或者创建模块104发送的工作流定义文件,按照预设规则进行数据结构的调整,然后将调整后的工作流定义文件发送给管理模块102,以便由管理模块102将该工作流定义文件发送至存储模块103中进行存储。
46.当然,信息解析模块105除了可以调整工作流定义文件的数据结构等格式以外,还可以调整该工作流定义文件的其它内容,本实施例对此并不进行限定。另外,对于管理模块102发送给执行模块101或者创建模块104的信息,信息解析模块105也可以将该信息调整为执行模块101或者创建模块104可识别的格式。
47.本实施例中,基于图1或者图2所示的工作流调度系统,不仅可以实现对工作流的有效调度,而且,实现上述工作流调度系统所需的组件对于环境、数据库引擎的依赖性较
小,对于部署该工作流调度系统的设备的要求较低(如可以不用要求部署该工作流调度系统的设备具备特定的规格和型号等),从而使得工作流调度系统可以达到轻量级的水平。进一步的,当执行模块101或者创建模块104根据实际应用的需求动态定义工作流时,可以摆脱基于工作流模板定义工作流的局限性。
48.值得注意,图1以及图2所示的系统架构仅作为一种示例性说明,并不用于限定本技术实施例的技术方案在实际应用中局限于上述系统架构。比如,在其它可能的工作流调度系统架构中,可以适应性的增加或者减少图1中的模块;或者将图1中的部分模块进行功能合并或分离,如将信息解析模块105并入管理模块102等;或者图2中的执行模块与管理模块之间具有其它形式的关联等。总之,本技术实施例可以应用于任何可适用的系统架构中。
49.为了使得本技术的技术方案更加清楚、易于理解,下面将从图1所示的系统架构中的各个设备之间进行交互的角度,对本技术实施例提供的访问权限的认证方法进行介绍。
50.参见图3所示的工作流调度方法的流程图,该方法包括:
51.s301:创建模块104创建工作流的定义文件。
52.本实施例中,是以创建模块104创建工作流的定义文件为例进行示例性说明,在其它可能的实施方式中,也可以是由执行模块101创建工作流的定义文件。
53.s302:创建模块104将该工作流定义文件发送给管理模块102。
54.在一些可能的实施方式中,创建模块104与管理模块102之间还可以具有信息解析模块105,该信息解析模块105可以对创建模块104发送的工作流定义文件进行格式调整,并将调整后的工作流定义文件发送给管理模块102。当然,本实施例中,创建模块104也可以该工作流定义文件直接发送给管理模块,而可以无需信息解析模块105进行格式转换等操作。
55.s303:管理模块102将工作流定义文件发送至存储模块103中进行保存。
56.s304:管理模块102从存储模块103中读取将储模块103中保存的工作流定义文件。
57.s305:管理模块102将该工作流定义文件添加至分配队列中。
58.实际应用,管理模块102可以接收到较多数量的工作流定义文件,并且,管理模块中的分配队列所能支持的工作流定义文件的数据量有限,因此,管理模块可以先将接收到的工作流定义文件发送至存储模块中进行存储,然后再将其添加至分配队列中,交由执行模块101进行执行。
59.s306:执行模块101向管理模块102发送工作流执行请求。
60.本实施例中,当管理模块102可以为多个执行模块提供工作流时,可以由多个执行模块抢占工作流的执行资格。比如,管理模块102可以是按照接收到的工作流执行请求的时间先后,优先将工作流分配给先请求执行工作流的执行模块。或者,不同执行模块之间可以具有不同优先程度的执行资格,从而管理模块102可以根据各个执行模块执行工作流的优先等级确定将工作流分配给哪个执行模块。本实施例中,对于管理模块102分配工作流的具体实现方式并不进行限定。
61.s307:管理模块102可以将分配队列中的工作流发送给执行模块101。
62.s308:执行模块101执行该工作流,并生成相应的执行结果。
63.s309:执行模块101将执行结果发送给管理模块102。
64.本实施例中,执行模块101与管理模块102之间的通信数据,还可以由信息解析模块105进行格式转换等操作,以使得执行模块101以及管理模块102能够识别其接收到的通
信数据。
65.s310:管理模块102根据接收到的执行结果更新工作流的状态。
66.s311:管理模块102将工作流的状态发送至存储模块103中进行存储。
67.s312:管理模块102将工作流的状态发送给创建模块104。
68.值得注意的是,图3所示的各个步骤的执行顺序,仅作为一种示例性说明,并不用于其限定本技术实施例在实际应用中的步骤执行顺序局限于图3所示示例,应当理解,其可以基于图3所示的步骤执行顺序进行适应性调整。比如,步骤s311与步骤s312可以同时执行,也可以是先执行步骤s312,再执行步骤s311等。
69.由于本实施例中所述的工作流调度方法中各个调度步骤的实现过程,可以对应于前述实施例中相应模块的功能的具体实现,因此,本实施例中各个调度步骤的具体实现以及其所具有的技术效果,可以参见前述实施例中的相关之处描述,在此不做赘述。
70.上文结合图1至图3对本技术实施例提供的工作流调度系统以及工作流调度方法进行了详细介绍,下面将结合附图对本技术实施例提供的设备进行介绍。
71.本技术实施例还提供了一种设备。该设备400可以用于实现如图1或图3所示的管理模块102的功能,
72.图4提供了一种设备400的结构示意图,如图4所示,设备400包括总线401、处理器402、通信接口403和存储器404。处理器402、存储器404和通信接口403之间通过总线401通信。
73.总线401可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
74.处理器402可以为中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。
75.通信接口403用于与外部通信。例如,通信接口403可以接收软件包下载请求,发送目标软件包等等。
76.存储器404可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram)。存储器404还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd)。
77.其中,存储器404中存储有可执行代码,处理器402执行该可执行代码以执行前述管理模块102所执行的方法。
78.具体地,在实现图1所示实施例的情况下,且图1实施例中所描述的管理模块102为通过软件实现的情况下,执行图1中的管理模块102功能所需的软件或程序代码存储在存储器404中。
79.通信接口403可以用于设备400与其它设备之间的通信。如通信接口403接收执行模块101发送的工作流执行请求等,然后通信接口403将其通过总线401传输至处理器402,处理器402执行存储器404中存储的各单元对应的程序代码,如管理模块102对应的程序代
码,以执行为执行模块101分配工作流定义文件等步骤,然后通信接口403再向执行模块101发送工作流定义文件。
80.根据本技术实施例的工作流调度设备400可对应于执行本技术实施例中描述的方法,并且管理模块102的上述和其它操作和/或功能分别为了实现图2所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
81.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示计算机执行上述应用于管理模块102或管理模块102的工作流调度方法。
82.本技术实施例还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述工作流调度方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述工作流调度方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
83.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献