CN111506406A - 工作流调度方法、装置、系统与计算机可读存储介质 - Google Patents
工作流调度方法、装置、系统与计算机可读存储介质 Download PDFInfo
- Publication number
- CN111506406A CN111506406A CN202010283043.0A CN202010283043A CN111506406A CN 111506406 A CN111506406 A CN 111506406A CN 202010283043 A CN202010283043 A CN 202010283043A CN 111506406 A CN111506406 A CN 111506406A
- Authority
- CN
- China
- Prior art keywords
- workflow
- actuator
- target
- determining
- scheduling
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000004044 response Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 description 14
- 238000003780 insertion Methods 0.000 description 7
- 230000037431 insertion Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
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
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及工作流调度方法、装置、系统与计算机可读存储介质。
背景技术
近年来,随着金融科技(Fintech),尤其是互联网金融的不断发展,工作流调度技术被引入银行等金融机构的日常服务中。在银行等金融机构的日常服务过程中,往往需要针对不同的工作任务进行分派执行,使得每一个工作任务都能得到最优解决,从而实现工作任务的智能执行,在这过程中,如何对工作任务进行调度,是银行等金融机构的一个重要工作。
现有工作任务调度方式主要采用调度系统实现,现有调度系统主要通过单节点运行的管理服务器,对用户提交的工作任务进行调度。
然而,由于现有调度系统的调度动作主要由管理服务器负责,因此,管理服务器需承担一系列功能,如分派工作任务,更新工作任务状态等,这无疑增加了管理服务器的复杂性,管理服务器一旦异常挂掉,那么所有的服务功能将不能用;且为了能将工作任务进行快速调度,管理服务器还需要从数据库中获取一系列数据在内部存储器中进行缓存,如工作流信息,调度状态等,以便对工作流进行快速响应,且由于管理服务器需要缓存一系列数据,若是多点部署,也会因为其他管理服务器未缓存当前节点数据而无法实现相同的调度过程,意味着不同的管理服务器可能存在数据不一致的情况,无法进行相同的调度,因此管理服务器只能单点部署。显然,现有调度系统所执行的调度方式可靠性较低,性能不足,智能性还有待提高。
发明内容
本发明的主要目的在于提出一种工作流调度方法、装置、系统与计算机可读存储介质,旨在提高调度智能性。
为实现上述目的,本发明提供一种工作流调度方法,所述工作流调度方法包括如下步骤:
若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;
确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。
优选地,所述确定目标执行器的步骤包括:
获取执行器的有效权重,并基于所述有效权重,确定目标执行器;
获取所述执行器的配置权重,并基于所述配置权重更新所述有效权重。
优选地,所述获取执行器的有效权重,并基于所述有效权重,确定目标执行器的步骤包括:
获取执行器的有效权重,并基于所述有效权重,确定最优执行器,所述最优执行器至少包括两个;
获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器。
优选地,所述参数信息包括热数据和冷数据,所述获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器的步骤包括:
获取所述最优执行器的热数据和冷数据;
基于所述热数据和所述冷数据,计算所述最优执行器的响应速度,并基于所述响应速度,从所述最优执行器中确定目标执行器。
优选地,所述参数信息包括工作流数量和/或内存信息,所述获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器的步骤包括:
获取所述最优执行器运行的工作流数量和/或内存信息;
基于所述工作流数量和所述内存信息,从所述最优执行器中确定目标执行器。
优选地,所述确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流的步骤包括:
确定目标执行器,并基于所述目标执行器,确定所述预设轮询表中的待执行工作流是否满足执行条件;
将满足执行条件的待执行工作流确定为目标工作流,基于所述目标执行器,获取所述目标工作流,并基于所述目标工作流的执行规则,执行所述目标工作流。
优选地,所述若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中的步骤包括:
若检测到调度请求,则基于所述调度请求对应的设备ID,确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流;
确定所述调度请求对应的待执行工作流的优先级,并基于所述优先级,将所述待执行工作流插入预设轮询表中。
此外,为实现上述目的,本发明还提供一种工作流调度装置,所述工作流调度装置包括:
插入模块,用于若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;
执行模块,用于确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。
优选地,所述执行模块还用于:
获取执行器的有效权重,并基于所述有效权重,确定目标执行器;
获取所述执行器的配置权重,并基于所述配置权重更新所述有效权重。
优选地,所述执行确定模块还用于:
获取执行器的有效权重,并基于所述有效权重,确定最优执行器,所述最优执行器至少包括两个;
获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器。
优选地,所述参数信息包括热数据和冷数据,所述执行模块还用于:
获取所述最优执行器的热数据和冷数据;
基于所述热数据和所述冷数据,计算所述最优执行器的响应速度,并基于所述响应速度,从所述最优执行器中确定目标执行器。
优选地,所述参数信息包括工作流数量和/或内存信息,所述执行模块还用于:
获取所述最优执行器运行的工作流数量和/或内存信息;
基于所述工作流数量和所述内存信息,从所述最优执行器中确定目标执行器。
优选地,所述执行模块还用于:
确定目标执行器,并基于所述目标执行器,确定所述预设轮询表中的待执行工作流是否满足执行条件;
将满足执行条件的待执行工作流确定为目标工作流,基于所述目标执行器,获取所述目标工作流,并基于所述目标工作流的执行规则,执行所述目标工作流。
优选地,所述插入模块还用于:
若检测到调度请求,则基于所述调度请求对应的设备ID,确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流;
确定所述调度请求对应的待执行工作流的优先级,并基于所述优先级,将所述待执行工作流插入预设轮询表中。
此外,为实现上述目的,本发明还提供一种工作流调度系统,所述工作流调度系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工作流调度程序,所述工作流调度程序被所述处理器执行时实现如上所述的工作流调度方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有工作流调度程序,所述工作流调度程序被处理器执行时实现如上所述的工作流调度方法的步骤。
本发明提出的工作流调度方法,若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。本发明将管理服务器的调度功能下放到执行器,在检测到调度请求时,由对应的管理服务器将调度请求对应的待执行工作流插入轮询表中,降低管理服务器的复杂性,再由目标执行器主动去轮询表中获取并执行目标工作流,不需要管理服务器缓存一系列数据,从而实现管理服务器的横向扩展,提高了调度的智能性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图;
图2为本发明工作流调度方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图。
本发明实施例系统可以包括移动终端或服务器设备等。
如图1所示,该系统可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及工作流调度程序。
其中,操作系统是管理和控制工作流调度系统与软件资源的程序,支持网络通信模块、用户接口模块、工作流调度程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的工作流调度系统中,所述工作流调度系统通过处理器1001调用存储器1005中存储的工作流调度程序,并执行下述工作流调度方法各个实施例中的操作。
基于上述硬件结构,提出本发明工作流调度方法实施例。
参照图2,图2为本发明工作流调度方法第一实施例的流程示意图,所述方法包括:
步骤S10,若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;
步骤S20,确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。
本实施例工作流调度方法运用于理财机构或者银行系统等金融机构的工作流调度系统中,为描述方便,工作流调度系统以调度系统简称。在本实施例中,调度系统包括若干管理服务器、至少一个数据库和若干执行器,具体在数据库中定义一个轮询表,其中,轮询表为工作流执行的队列,是事先生成,给各个管理服务器及执行器存储调用的表,本实施例中,轮询表中可增加锁,以保证线程安全和数据一致性。在实现工作流调度的过程中,管理服务器将用户提交的工作流插入数据库的轮询表中,也即,轮询表即为原现有管理服务器的缓存队列,这意味着本实施例的管理服务器区别于原现有管理服务器,不再需要缓存一系列数据,而是将数据放在外部的数据库中,具体将工作流插入数据库的轮询表中,也即本实施例的管理服务器是无状态的,不维护缓存,直接从数据库读取/写入数据,因此可横向扩展,成多点部署状态。之后,由执行器主动发起轮询,获取预设轮询表中的工作流,并执行该工作流,也即,将原现有管理服务器的调度功能下放至执行器。
需要说明的是,在执行器获取到工作流后,对工作流进行上锁,并更新工作流在轮询表中的状态,以提示其他执行器不可对其进行拉取,并更新调度进度,若用户想知道工作流的调度进度,则可通过管理服务器在数据库的轮询表中查询工作流的状态,即可及时知道工作流的最新调度进度。
以下将对各个步骤进行详细说明:
步骤S10,若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中。
在本实施例中,管理服务器支持多点部署,且不同的管理服务器对接不同的用户设备,因此,若调度系统检测到用户通过用户设备发起的调度请求时,先确定调度请求对应的管理服务器,在通过管理服务器确定调度请求对应的待执行工作流,再由确定的管理服务器将对应的待执行工作流插入数据库的预设轮询表中,也即不同的调度请求由不同的管理服务器将其对应的工作流插入预设轮询表中。
在一实施例中,步骤S10包括:
步骤a1,若检测到调度请求,则基于所述调度请求对应的设备ID,确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流;
在一实施例中,若调度系统检测到调度请求,则先确定发起调度请求的用户设备的设备ID,然后,通过设备ID,确定当前调度请求对应的管理服务器,也即,在一实施例中,不同设备ID的用户设备对接不同的管理服务器,如设备ID00001-00100对接管理服务器A,设备ID00101-00200对接管理服务器B......若当前发起调度请求的用户设备的设备ID为00090,则确定对应的管理服务器为A等。
然后,通过确定的管理服务器确定调度请求对应的待执行工作流,也即用户提交的工作流会先到达对应的管理服务器,以便后续调度系统的管理服务器将工作流插入数据库的预设轮询表中。
在另一实施例中,还可根据调度请求的调度类型确定对应的管理服务器,具体的:
若检测到调度请求,则基于所述调度请求的待执行工作流,确定所述调度请求的调度类型;
基于所述调度类型,确定所述调度请求对应的管理服务器。
也即,在另一实施例中,若调度系统检测到用户发起的调度请求,则先获取调度请求的待执行工作流,通过分析待执行工作流,确定调度请求的调度类型,其中,调度类型包括系统调度和业务调度,从而根据调度类型,确定对应的管理服务器,也即,事先将工作流进行分类,从而得到分类表,在获取到当前调度请求的待执行工作流时,即可根据分类表,确定调度请求的调度类型,从而根据调度类型,确定对应的管理服务器,如调度类型为业务调度的调度请求对应管理服务器B等。
步骤a2,确定所述调度请求对应的待执行工作流的优先级,并基于所述优先级,将所述待执行工作流插入预设轮询表中。
接着,确定调度请求对应的待执行工作流的优先级,其中,优先级可包括紧急、重要和一般,然后,通过确定的管理服务器,按照当前调度请求的优先级,将待执行工作流插入数据库的预设轮询表中。
需要说明的是,预设轮询表为工作流执行的队列,也即,预设轮询表中,依次储存有各个工作流,因此,在将当前的待执行工作流插入预设轮询表中时,需要确定当前待执行工作流的插入位置,也即确定待执行工作流在预设轮询表中的位置,其中,插入位置可根据优先级确定,也即,不同的优先级有不同的插入位置,然后,将待执行工作流插入该插入位置中,完成待执行工作流在预设轮询表的插入。
步骤S20,确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。
在本实施例中,由于执行器可有多个,因此,需先确定目标执行器,再由目标执行器主动去数据库的预设轮询表中拉取对应的目标工作流,并执行该目标工作流。
其中,在确定目标执行器的过程中,可以是按执行次数轮询确定,选择轮询次数少的执行器作为目标执行器,如执行器1执行过2次,执行器2执行过1次,其他执行器都执行过2次,则当前的目标执行器为执行器2等。
进一步地,在一实施例中,步骤S20包括:
步骤b1,确定目标执行器,并基于所述目标执行器,确定所述预设轮询表中的待执行工作流是否满足执行条件;
在一实施例中,调度系统通过确定目标执行器,并通过目标执行器,确定预设轮询表中待执行工作流是否满足执行条件,其中,执行条件包括当前时间是否满足待执行工作流的预设执行时间,也即待执行工作流为定时任务,在当前时间满足预设执行时间时,即确定待执行工作流满足执行条件;或者,执行条件包括当前待执行工作流是否在预设工作流执行之后,也即,预设工作流执行完毕之后,确定当前待执行工作流满足执行条件等。
因此,调度系统在确定目标执行器之后,需要通过目标执行器,依次确定预设轮询表中的待执行工作流是否满足执行条件。
步骤b2,将满足执行条件的待执行工作流确定为目标工作流,基于所述目标执行器,获取所述目标工作流,并基于所述目标工作流的执行规则,执行所述目标工作流。
在一实施例中,若预设轮询表中存在满足执行条件的待执行工作流,则将满足执行条件的待执行工作流确定为目标工作流,然后,通过目标执行器,拉取目标工作流,并按照目标工作流的执行规则,执行目标工作流,其中,执行规则可包括在执行过程中,将目标工作流上锁,以避免其他执行器重复执行;执行规则还可包括在执行过程中,不将目标工作流上锁,而是允许其他执行器也来执行,这是由于不同的执行器具备不同的执行性能,也即相同的工作流由不同的执行器来执行,可能完成时间不一致,通过此种规则,可实现工作流的最快执行,且某一个执行器异常故障也不影响目标工作流的执行进度等。
需要说明的是不同的目标工作流,其对应的执行规则不同,因此,在确定目标工作流之后,还需要确定目标工作流对应的执行规则,以便根据执行规则执行目标工作流。
本实施例若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。本发明将管理服务器的调度功能下放到执行器,在检测到调度请求时,由对应的管理服务器将调度请求对应的待执行工作流插入轮询表中,降低管理服务器的复杂性,再由目标执行器主动去轮询表中获取并执行目标工作流,不需要管理服务器缓存一系列数据,从而实现管理服务器的横向扩展,提高了调度的智能性。
进一步地,基于本发明工作流调度方法第一实施例,提出本发明工作流调度方法第二实施例。
工作流调度方法的第二实施例与工作流调度方法的第一实施例的区别在于,在确定目标执行器的过程中,工作流调度方法还包括:
步骤c,获取执行器的有效权重,并基于所述有效权重,确定目标执行器;
步骤d,获取所述执行器的配置权重,并基于所述配置权重更新所述有效权重。
本实施例在确定目标执行器的过程中,可根据动态平衡权重轮询的方式,动态调整执行器的有效权重,并根据执行器的有效权重,轮询确定目标执行器。
以下将对动态平衡权重轮询的方式,以及各个步骤进行详细说明:
步骤c,获取执行器的有效权重,并基于所述有效权重,确定目标执行器。
在本实施例中,在确定目标执行器的过程中,调度系统获取执行器的有效权重vw,其中,执行器的有效权重vw为动态变化的权重,具体的,执行器的有效权重初始值为配置权重cw,配置权重cw为执行器事先配置好的权重,如当前有执行器1、2和3,其事先配置的配置权重分别为cw1=3,cw2=1,cw3=1,则一开始执行器1的有效权重为vw1=3,执行器2的有效权重为vw2=1,执行器3的有效权重为vw3=1等,所有配置权重的和即为配置权重和allweight。在一实施例中,可通过比较各个执行器的有效权重vw的大小,确定目标执行器,如上述例子,由于执行器1的有效权重vw1最大,因此,可将执行器1确定为目标执行器。
进一步地,在一实施例中,步骤c包括:
步骤c1,获取执行器的有效权重,并基于所述有效权重,确定最优执行器,所述最优执行器至少包括两个;
在一实施例中,调度系统先获取执行器的有效权重vw,然后,通过对比各个执行器的有效权重vw,选取其中至少两个执行器作为最优执行器,其中,选取规则可为有效权重vw最大的至少两个,也即,先从执行器中选择最优组,其中,最优组中的最优执行器至少包括两个,若存在并列最大的情况,如上所述例子,若确定最优执行器为两个,由于执行器2和执行器3的有效权重vw都是1,则按照最左排序,确定最优执行器为执行器1和执行器2等。
步骤c2,获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器。
在一实施例中,在确定了最优执行器之后,通过获取最优执行器的参数信息,从最优执行器中再选择目标执行器,也即通过两次筛选,从而确定出目标执行器,提高了目标执行器的确定精度。
在一实施例中,步骤c2包括:
步骤c21,获取所述最优执行器的热数据和冷数据;
在一实施例中,参数信息包括热数据和冷数据,其中,热数据指较新的数据,历史的数据为冷数据,也即,预设时间内的数据为热数据,预设时间之前的数据则为冷数据,具体的预设时间可根据实际情况进行设置。
步骤c22,基于所述热数据和所述冷数据,计算所述最优执行器的响应速度,并基于所述响应速度,从所述最优执行器中确定目标执行器。
在一实施例中,为确定最优组中各个执行器的响应速度,通过历史响应速度来确定可提高准确性,因此,获取最优执行器的热数据和冷数据作为判断依据。
然后,根据热数据和冷数据,计算最优执行器的响应速度,具体的,确定最优执行器在处理热数据时的响应速度,以及最优执行器在处理冷数据时响应速度,并确定热数据的权重值和冷数据的权重值,然后,根据热数据的权重值、冷数据的权重值、最优执行器在处理热数据时的响应速度和最优执行器在处理冷数据时响应速度,计算最优执行器的响应速度,也即对最优执行器处理冷热数据的响应速度进行加权平均,从而得到最优执行器的响应速度。
然后,比较最优执行器中各个执行器的响应速度,将响应速度快的执行器确定为目标执行器,也即选择最快响应速度的执行器作为目标执行器,以便对工作流作出最快响应。
进一步地,在另一实施例中,步骤c2包括:
步骤c23,获取所述最优执行器运行的工作流数量和/或内存信息;
在另一实施例中,参数信息包括维度参数,其中,维度参数至少包括CPU,工作流数量和内存信息等中的一种或几种,内存信息可以剩余内存量作为参数,也可以被占用内存量作为参数,在此,以参数信息是工作流数量和内存信息为例进行说明。
在另一实施例中,通过维度参数来确定最优组中各个执行器的压力,因此,获取最优执行器的工作流数量和内存信息作为判断依据。
步骤c24,基于所述工作流数量和所述内存信息,从所述最优执行器中确定目标执行器。
然后,根据最优执行器当前正在运行的工作流数量以及内存信息,确定哪一执行器的压力最小,将压力最小的执行器作为目标执行器,也即,通过工作流数量和内存信息,计算最优执行器的压力值,并将压力值最小的执行器作为目标执行器。
其中,执行器的压力值的计算方式可通过如下公式计算:
压力值=(参数1+参数2+...+参数n)/(参数1*参数2*...*参数n)
如上述例子,参数信息为工作流数量和内存信息时,压力值为:
(工作流数量+内存信息)/(工作流数量*内存信息)
需要说明的是,当参数信息只有一个的情况时,可以当前参数信息作为压力值,如当参数信息为工作流数量时,执行器的压力值即为工作流数量;当参数信息为内存信息时,执行器的压力值即为内存大小等。
进一步地,在另一实施例中,在确定目标执行器时,还可将响应速度和压力值同时作为参数信息来确定,具体可事先配置响应速度的权重以及压力值的权重,再计算最优执行器的总加权分值,从而比较总加权分值来确定目标执行器。
步骤d,获取所述执行器的配置权重,并基于所述配置权重更新所述有效权重。
在本实施例中,在确定了目标执行器之后,获取各个执行器的配置权重cw,并计算各个执行器的配置权重cw的配置权重和allweight,然后,根据配置权重cw和配置权重和allweight,更新执行器的有效权重vw。
具体采用动态平衡权重轮询的方式,目标执行器的有效权重vw减去配置权重和allweight,得到目标执行器在被选中后的有效权重vw’,其余执行器的有效权重vw不变,然后,将目标执行器的有效权重vw’,以及其余执行器的有效权重vw加上各自的配置权重cw,从而得到各个执行器调整后的有效权重。
为方便说明,假设有三台执行器ExecutorServer,有一个配置高的配置权重设置为ExecutorServer1为3,其余两台(ExecutorServer2,ExecutorServer3)配置低的配置权重设置为1,那么配置权重和allweight=5,那么现有的轮询顺序为:
从上表可看出,在第一次轮询确定执行器ExecutorServer1为目标执行器之后,ExecutorServer1的有效权重vw=3会减去配置权重和allweight=5,得到vw’=-2,其余执行器的有效权重不变,然后,各个执行器加上各自的配置权重,从而将原先的有效权重3,1,1更新为1,2,2,作为第二次轮询的有效权重,在第二次轮询时,确定ExecutorServer2为目标执行器之后,ExecutorServer2的有效权重vw=2会减去配置权重和allweight=5,得到vw’=-3,其余执行器的有效权重不变,然后,各个执行器加上各自的配置权重,从而将原先的有效权重1,2,2更新为4,-2,3......以此类推,通过动态调整执行器的有效权重,可实现动态平衡权重轮询,也即,执行器轮询去预设轮询表中拉取目标工作流。
可以看出上述调度序列分散是非常均匀的,且第5次调度时当前有效权重值又回到(0,0,0),实例的状态同初始状态一致,也即在第6次轮询时,由于加上配置权重,各个执行器的有效权重又会回到(3,1,1)的状态,所以后续可以一直重复调度操作。
本实施例在确定目标执行器的过程中,可根据动态平衡权重轮询的方式,动态调整执行器的有效权重,并根据执行器的有效权重,轮询确定目标执行器,使得每一次轮询都能找到最优的执行器来拉取预设轮询表中的工作流,且每一执行器有能循环执行,实现资源的最大化,提高调度的智能性。
本发明还提供一种工作流调度装置。本发明工作流调度装置包括:
插入模块,用于若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;
执行模块,用于确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。
优选地,所述执行模块还用于:
获取执行器的有效权重,并基于所述有效权重,确定目标执行器;
获取所述执行器的配置权重,并基于所述配置权重更新所述有效权重。
优选地,所述执行确定模块还用于:
获取执行器的有效权重,并基于所述有效权重,确定最优执行器,所述最优执行器至少包括两个;
获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器。
优选地,所述参数信息包括热数据和冷数据,所述执行模块还用于:
获取所述最优执行器的热数据和冷数据;
基于所述热数据和所述冷数据,计算所述最优执行器的响应速度,并基于所述响应速度,从所述最优执行器中确定目标执行器。
优选地,所述参数信息包括工作流数量和/或内存信息,所述执行模块还用于:
获取所述最优执行器运行的工作流数量和/或内存信息;
基于所述工作流数量和所述内存信息,从所述最优执行器中确定目标执行器。
优选地,所述执行模块还用于:
确定目标执行器,并基于所述目标执行器,确定所述预设轮询表中的待执行工作流是否满足执行条件;
将满足执行条件的待执行工作流确定为目标工作流,基于所述目标执行器,获取所述目标工作流,并基于所述目标工作流的执行规则,执行所述目标工作流。
优选地,所述插入模块还用于:
若检测到调度请求,则基于所述调度请求对应的设备ID,确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流;
确定所述调度请求对应的待执行工作流的优先级,并基于所述优先级,将所述待执行工作流插入预设轮询表中。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有工作流调度程序,所述工作流调度程序被处理器执行时实现如上所述的工作流调度方法的步骤。
其中,在所述处理器上运行的工作流调度程序被执行时所实现的方法可参照本发明工作流调度方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种工作流调度方法,其特征在于,所述工作流调度方法包括如下步骤:
若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;
确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。
2.如权利要求1所述的工作流调度方法,其特征在于,所述确定目标执行器的步骤包括:
获取执行器的有效权重,并基于所述有效权重,确定目标执行器;
获取所述执行器的配置权重,并基于所述配置权重更新所述有效权重。
3.如权利要求2所述的工作流调度方法,其特征在于,所述获取执行器的有效权重,并基于所述有效权重,确定目标执行器的步骤包括:
获取执行器的有效权重,并基于所述有效权重,确定最优执行器,所述最优执行器至少包括两个;
获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器。
4.如权利要求3所述的工作流调度方法,其特征在于,所述参数信息包括热数据和冷数据,所述获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器的步骤包括:
获取所述最优执行器的热数据和冷数据;
基于所述热数据和所述冷数据,计算所述最优执行器的响应速度,并基于所述响应速度,从所述最优执行器中确定目标执行器。
5.如权利要求3所述的工作流调度方法,其特征在于,所述参数信息包括工作流数量和/或内存信息,所述获取所述最优执行器的参数信息,基于所述参数信息,从所述最优执行器中确定目标执行器的步骤包括:
获取所述最优执行器运行的工作流数量和/或内存信息;
基于所述工作流数量和/或所述内存信息,从所述最优执行器中确定目标执行器。
6.如权利要求1所述的工作流调度方法,其特征在于,所述确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流的步骤包括:
确定目标执行器,并基于所述目标执行器,确定所述预设轮询表中的待执行工作流是否满足执行条件;
将满足执行条件的待执行工作流确定为目标工作流,基于所述目标执行器,获取所述目标工作流,并基于所述目标工作流的执行规则,执行所述目标工作流。
7.如权利要求1-6任一项所述的工作流调度方法,其特征在于,所述若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中中的步骤包括:
若检测到调度请求,则基于所述调度请求对应的设备ID,确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流;
确定所述调度请求对应的待执行工作流的优先级,并基于所述优先级,将所述待执行工作流插入预设轮询表中。
8.一种工作流调度装置,其特征在于,所述工作流调度装置包括:
插入模块,用于若检测到调度请求,则确定所述调度请求对应的管理服务器,并基于所述管理服务器确定所述调度请求对应的待执行工作流,将所述待执行工作流插入预设轮询表中;
执行模块,用于确定目标执行器,并基于所述目标执行器,从所述预设轮询表中获取并执行目标工作流。
9.一种工作流调度系统,其特征在于,所述工作流调度系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工作流调度程序,所述工作流调度程序被所述处理器执行时实现如权利要求1至7中任一项所述的工作流调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有工作流调度程序,所述工作流调度程序被处理器执行时实现如权利要求1至7中任一项所述的工作流调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010283043.0A CN111506406B (zh) | 2020-04-10 | 工作流调度方法、装置、系统与计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010283043.0A CN111506406B (zh) | 2020-04-10 | 工作流调度方法、装置、系统与计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506406A true CN111506406A (zh) | 2020-08-07 |
CN111506406B CN111506406B (zh) | 2024-07-02 |
Family
ID=
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783123A (zh) * | 2020-12-30 | 2021-05-11 | 北京理工大学 | 一种工作流调度执行单元控制方法和控制器 |
CN113225269A (zh) * | 2021-04-16 | 2021-08-06 | 鹏城实验室 | 基于容器的工作流调度方法、装置、系统及存储介质 |
CN113259266A (zh) * | 2021-05-28 | 2021-08-13 | 北京达佳互联信息技术有限公司 | 一种消息队列的消息推送方法和装置、服务器、存储介质 |
CN113504766A (zh) * | 2021-07-02 | 2021-10-15 | 海尔(深圳)研发有限责任公司 | 用于调度场景任务的方法、系统、装置、服务器和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766196A (zh) * | 2018-12-18 | 2019-05-17 | 深圳云天励飞技术有限公司 | 一种任务调度方法、装置及设备 |
CN110109978A (zh) * | 2019-05-16 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 基于指标的数据分析方法、装置、服务器及可读存储介质 |
WO2019223178A1 (zh) * | 2018-05-21 | 2019-11-28 | 平安科技(深圳)有限公司 | 跨平台任务调度方法、系统、计算机设备和存储介质 |
CN110738389A (zh) * | 2019-09-03 | 2020-01-31 | 深圳壹账通智能科技有限公司 | 工作流处理方法、装置、计算机设备和存储介质 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019223178A1 (zh) * | 2018-05-21 | 2019-11-28 | 平安科技(深圳)有限公司 | 跨平台任务调度方法、系统、计算机设备和存储介质 |
CN109766196A (zh) * | 2018-12-18 | 2019-05-17 | 深圳云天励飞技术有限公司 | 一种任务调度方法、装置及设备 |
CN110109978A (zh) * | 2019-05-16 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 基于指标的数据分析方法、装置、服务器及可读存储介质 |
CN110738389A (zh) * | 2019-09-03 | 2020-01-31 | 深圳壹账通智能科技有限公司 | 工作流处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
COMBI, C等: "Task scheduling for a temporal workflow management system", 《THIRTEENTH INTERNATIONAL SYMPOSIUM ON TEMPORAL REPRESENTATION AND REASONING》, 31 December 2006 (2006-12-31) * |
陈梅梅;: "基于收益驱动请求分类的多目标动态优先请求调度", 计算机科学, no. 08, 15 August 2016 (2016-08-15) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783123A (zh) * | 2020-12-30 | 2021-05-11 | 北京理工大学 | 一种工作流调度执行单元控制方法和控制器 |
CN113225269A (zh) * | 2021-04-16 | 2021-08-06 | 鹏城实验室 | 基于容器的工作流调度方法、装置、系统及存储介质 |
CN113259266A (zh) * | 2021-05-28 | 2021-08-13 | 北京达佳互联信息技术有限公司 | 一种消息队列的消息推送方法和装置、服务器、存储介质 |
CN113504766A (zh) * | 2021-07-02 | 2021-10-15 | 海尔(深圳)研发有限责任公司 | 用于调度场景任务的方法、系统、装置、服务器和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11983562B2 (en) | Multidimensional resource scheduling method in Kubernetes cluster architecture system | |
US20100076925A1 (en) | System for managing data collection processes | |
CN106933664B (zh) | 一种Hadoop集群的资源调度方法及装置 | |
EP2575042A1 (en) | Control device, control method, and control progam | |
CN109451020B (zh) | 超时管理方法、设备及计算机可读存储介质 | |
US20090235250A1 (en) | Management machine, management system, management program, and management method | |
CN110347494B (zh) | 上下文信息管理方法、装置、系统及计算机可读存储介质 | |
CN112395067A (zh) | 任务调度方法、系统、设备及介质 | |
US8161485B2 (en) | Scheduling jobs in a plurality of queues and dividing jobs into high and normal priority and calculating a queue selection reference value | |
CN113364697A (zh) | 流量控制方法、装置、设备及计算机可读存储介质 | |
CN114116149A (zh) | 一种任务调度方法、装置、设备及介质 | |
CN115292039A (zh) | 一种面向异构计算平台的多任务分布式调度负载均衡方法 | |
CN111709723A (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
CN109062683B (zh) | 主机资源分配的方法、装置及计算机可读存储介质 | |
CN113342497A (zh) | 任务调度方法、装置、终端设备及计算机存储介质 | |
CN116302448B (zh) | 任务调度方法和系统 | |
CN110852603B (zh) | 高吞吐量的风控数据处理方法、装置、设备及存储介质 | |
CN112596820A (zh) | 一种资源加载方法、装置、设备以及存储介质 | |
CN111506406A (zh) | 工作流调度方法、装置、系统与计算机可读存储介质 | |
CN111143210A (zh) | 一种测试任务调度方法和系统 | |
CN111506406B (zh) | 工作流调度方法、装置、系统与计算机可读存储介质 | |
CN111880910A (zh) | 数据处理方法及装置、服务器及存储介质 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN111813546B (zh) | 一种多网络连接应用的资源分配方法、系统及相关装置 | |
CN110401708B (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 |