批处理任务动态控制方法、装置和计算机设备和存储介质与流程

专利2023-11-09  91



1.本技术涉及服务器管理技术领域,特别是涉及一种批处理任务动态控制方法、装置、计算机设备和存储介质。


背景技术:

2.随着技术的发展,用户数量不断增加,应用程序不断扩展,数据中心的规模和设备配置也在不断增加以适应服务需求。数据中心通常作为云服务器来提供处理任务的服务,但不断扩展的数据中心也会带来一些问题。一方面,随着服务器数量增多必然导致运维压力增大,需要更多人力成本;另一方面,以前的服务器管理软件任务调度大部分是不可控制的,在任务运行中是不能控制的,不能随时停止,暂停等功能,并且不能修改任务执行顺序。
3.然而,云服务器在处理任务时,存在个别任务卡死现象,从而只能根据反馈信息解除对应任务的卡死,操作很不便捷和及时,导致后续排队处理的任务挤压,效率明显降低。而且这种任务处理过程无法可视化监控操作,可操作性极差,因而如何提高用户对服务器管理系统的可操作性,并增强服务器管理系统的可用性及可扩展性是亟待解决的技术问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够对任务处理过程进行可视化监控操作,提高用户对服务器管理系统的可操作性,并增强服务器管理系统的可用性及可扩展性的批处理任务动态控制方法、装置、计算机设备和存储介质。
5.一方面,提供一种批处理任务动态控制方法,所述方法包括:
6.通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;
7.将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
8.将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;
9.对工作流中任务分级执行;以及
10.在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
11.在其中一个实施例中,所述将每一集合分级拆分后按照任务类别组合生成工作流,包括:
12.将所述用户任务发送到任务调度中心,所述任务调度中心将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
13.在任务转化工厂将每一集合根据用户任务拆分规则完成任务分级拆分,然后按照任务类别进行组合编排成一个工作流;
14.所述任务转化工厂将所述工作流按照任务类别寻找对应的线程池和任务队列;以

15.所述任务转化工厂将所述工作流在所述任务队列中根据任务优先级进行排序,然后依次进入所述线程池。
16.在其中一个实施例中,所述对工作流中任务分级执行,包括:
17.在工作流执行中心定义任务执行器,所述任务执行器包括一级任务工作和二级任务节点,其中每个工作包含多个节点;
18.调用任务执行器检查所述任务队列;若所述任务队列为空,继续等待;若所述任务队列有工作流,立即从所述任务队列中读取所述工作流的相关信息,分级执行相应动作。
19.在其中一个实施例中,所述在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改,包括:
20.调用任务监听器执行工作流监听,所述任务监听器获取下一个工作;
21.所述任务监听器判断该工作中的任务是否为空;若是则执行工作流监听结束;若否则执行工作监听;
22.所述任务监听器在执行工作监听时,实时检测是否存在暂停、终止、恢复事件;若存在终止则执行工作流监听结束;若存在暂停则对工作流添加对象锁并释放线程、等待恢复事件;若不存在暂停、终止、恢复事件则开始执行所述一级任务工作并执行监听事件,按照所述二级任务节点流程获取下一个节点;
23.所述任务监听器在获取下一个节点后,判断该节点是否为空;若是则执行工作流监听结束,并返回获取下一个工作步骤;若否则判断是否有控制事件,若是则执行用户自定义节点执行器,直至执行节点监听结束后返回获取下一个节点步骤。
24.在其中一个实施例中,在对工作流中任务分级执行时,还包括:
25.调用工作流控制中心控制用户任务的暂停和恢复,其中所述工作流控制中心包括工作流控制和一级任务控制;所述工作流控制和所述一级任务控制分别设置工作流锁定图和工作锁定图来控制对应的对象锁,进而控制用户任务的暂停和恢复。
26.在其中一个实施例中,在调用所述任务监听器执行工作流监听时,所述任务监听器分级执行工作流监听;其中所述任务监听器包括工作流监听器、一级任务工作监听器、二级任务节点监听器;所述工作流监听器用于执行对工作流的执行过程监听,所述一级任务工作监听器用于执行对所述一级任务工作的执行过程监听,所述二级任务节点监听器用于执行对所述二级任务节点的执行过程监听。
27.在其中一个实施例中,通过所述可视化界面在工作流控制中心进行任务创建或添加、任务删除、任务执行、任务暂停、任务恢复、任务停止的控制;在对工作流中任务分级执行时,还包括:
28.每个用户任务还设有超时时间,在所述用户任务被执行时超出其对应的超过时间时会结束任务并添加对象锁,执行工作流的下一个任务,直到工作流任务全部结束;所述工作流控制中心通过控制对象锁来控制用户任务的暂停和恢复。
29.另一方面,提供了一种批处理任务动态控制装置,所述装置包括:
30.工作流控制中心,用于通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;
31.任务调度中心,用于将所述用户任务按照每一任务绑定设备分成不同集合,并将
每一集合分发到对应的任务绑定设备;
32.任务转化工厂,用于将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;
33.工作流执行中心,用于对工作流中任务分级执行;以及
34.工作流监听中心,用于在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
35.再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
36.通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;
37.将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
38.将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;对工作流中任务分级执行;以及在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
39.又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
40.通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;
41.将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
42.将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;对工作流中任务分级执行;以及在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
43.上述批处理任务动态控制方法、装置、计算机设备和存储介质,通过将用户任务拆解组合成一个工作流,工作流按照任务分级执行流程完成工作流,并且可以通过工作流监听中心完成工作流的监听与工作流日志记录。此外还可以通过服务器的工作流控制中心模块的两级控制机制,通过对任务状态修改时添加对象锁的方式完成任务的分级控制,从而更精细的完成任务控制,提升用户体验。而且通过任务拆分组合可以完成多个服务器管理任务一次执行降低用户使用的软件的复杂性,提升软件的可用性及可扩展性。并结合可视化界面管理任务对应的工作流进程,提高了用户对服务器管理系统的可操作性。
附图说明
44.图1为一个实施例中批处理任务动态控制方法的应用环境图;
45.图2为一个实施例中服务器的整体网络拓扑图;
46.图3为一个实施例中批处理任务动态控制方法的流程示意图;
47.图4为一个实施例中批处理任务动态控制方法的流程框图;
48.图5为一个实施例中将每一集合分级拆分后按照任务类别组合生成工作流步骤的流程示意图;
49.图6为一个实施例中对工作流中任务分级执行步骤的流程示意图;
50.图7为一个实施例中在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改步骤的流程示意图;
51.图8为一个实施例中工作流任务分级执行流程图;
52.图9为一个实施例中批处理任务动态控制装置的结构框图;
53.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
54.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
55.本技术提供的批处理任务动态控制方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端102具有可视化界面,是与用户沟通的主要渠道之一,可视化界面包括web页面。在终端102可以实现的主要功能包括任务添加、任务删除、任务执行、任务暂停、任务恢复、任务停止等功能。服务器104用于集成管理系统为任务控制系统,成为批处理任务的系统。
56.如图2所示,图2为所述服务器104的整体网络拓扑图,所述服务器104按照网络拓扑将管理程序部署在云服务器中,不仅可以通过maven或者gradle等工具集成在管理程序中,而且可以部署成服务提供任务管理服务,首先管理程序需要实现任务调度服务定义一些接口,比如执行器、任务拆分规则、任务监听等,用户可以通过页面创建任务,并设置任务类别、任务绑定设备和任务优先级,发送到服务器104。因此,所述服务器104的整体网络拓扑图中包括管理程序1和多个任务调度服务2,每一任务调度服务2对应一个服务器机房3,每一服务器机房3内设有多台服务器设备31,管理程序1和多个任务调度服务2之间通过第一网络连接设备4连接,每一任务调度服务2和每一服务器机房3内的服务器设备31通过第二网络连接设备5连接。
57.可理解的是,为了便于服务器104实现对用户任务的有效处理和跟踪状态管控,设置其结构包括工作流控制中心、任务调度中心、任务执行中心、任务转化工厂、工作流监听中心。
58.工作流控制中心主要功能包括任务添加、任务删除、任务执行、任务暂停、任务恢复、任务停止等功能。
59.任务调度中心主要是根据调度规则完成任务分发到不同的任务执行模块(即服务器设备31),进行任务执行。
60.任务转化工厂主要功能是根据用户任务拆分规则完成任务分级拆分,将新添加的任务按照任务信息进行拆分组合编排,组合成一个工作流,最后将工作流下发到到任务执行中心。
61.任务执行中心主要定义执行器实现的抽象逻辑和编排后的任务执行逻辑,包括抽象执行器的定义和组合任务分级执行的逻辑。
62.工作流监听中心定义了一系列监听事件,包括工作流监听、一级任务监听、二级任务监听等,通过对任务监听完成任务日志记录和任务状态修改。
63.在一个实施例中,如图3所示,提供了一种批处理任务动态控制方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤s1-s5。
64.步骤s1,通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级。
65.其中在步骤s1中,通过所述可视化界面在工作流控制中心进行任务创建或添加、任务删除、任务执行、任务暂停、任务恢复、任务停止的控制。
66.在操作时,首先按照图2所示,将管理程序1部署在服务器104的数据中心,确保管理程序1与服务器设备31网络畅通,管理程序1需要集成服务器设备31并且实现任务调度中心的工作流、任务执行器和监听等接口,在web页面创建n个任务模板m={m1,m2…
mj…mn
},对于每个任务模板由多个步骤组成,比如固件升级包括固件文件上传、文件校验、执行刷新、读取刷新进度,获取刷新版本等步骤,因此对于每个模板m可以拆分成l个步骤即s={s1,s2…
sj…sl
},任务模板对应任务绑定设备为m个记为r={r1,r2…rj
…rm
},并提交任务到任务调度中心。这里工作流是指一系列任务集合,任务执行器包括一级任务工作(一级任务work)和二级任务节点(二级任务node),其中每个work(工作)中包含多个node(节点),work中包括node的集合、next work(下一工作)、工作流监听中心、超时时间等信息。监听接口包括工作流监听器(work flow listener)、一级任务监听器(work listener)、二级任务监听器(node listener)。
67.步骤s2,将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备。
68.其中在步骤s2中,任务绑定设备就是前文的服务器设备31。将生成的任务模板m和任务绑定设备r,首先根据设备所在不同机房拆分调用不同的任务调度中心,然后将任务模板和设备信息通过任务转化工厂生成任务调度所需的任务,在任务转化工厂,按照任务模板和任务模板对应拆分步骤以及任务模板参数,通过反射技术生成调度系统所需任务模板,最后对任务顺序进行重新排序处理,设计生成任务工作流,同时根据动态注册技术完成任务监听的绑定。
69.步骤s3,将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序。
70.其中在步骤s3中,将生成的任务流根据服务器管理任务类型的不同动态使用各自的线程池和任务队列,这里队列是优先级队列,可以根据设置优先级该表队列顺序,如果线程池未满可以直接进入任务执行调度模块,如果线程池已满则根据工作流中任务优先级设置任务队列位置,等待任务调度。
71.步骤s4,对工作流中任务分级执行。
72.其中在步骤s4中,工作流执行按照一级任务、二级任务依次执行调度对应的执行器,同时在执行任务对应的任务监听。
73.步骤s5,在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
74.其中在步骤s5中,工作流开始执行后按照图3所示,首先执行工作流监听任务开
始,获取下一个work,判断work是否为空,执行work监听,查询工作流控制中心是否存在控制任务,如果是停止则执行工作流结束,如果是暂停事件则对工作流添加锁并释放线程,等待工作流恢复事件,如果没有工作流控制事件则开始执行一级任务,执行监听事件,判断是否存在work控制事件,按照事件类型执行work终止、暂停恢复等事件,按照二级任务流程依次执行任务执行器,执行node监听,完成一级任务,获取work的next work,按照顺序依次完成工作流执行。
75.请结合图3、图4所示,上述批处理任务动态控制方法中,服务器104将接收到的任务按照任务绑定设备,任务类别进行分类处理,将同一设备的任务分成不同集合,然后对集合中任务按照任务类别进行组合编排成一个工作流,然后将工作流按照任务种类寻找不同的线程池和任务队列,并且根据工作流中任务优先级设置对应任务队列的位置。工作流执行按照一级任务、二级任务依次执行调度对应的执行器,同时在执行任务对应的任务监听,完成任务日志记录,这里任务执行器与任务监听需要根据任务调度中心定义实现接口。
76.因此,上述批处理任务动态控制方法能够完成服务器管理过程中任务调度和任务分级动态的功能,通过这种方式不仅能够一次任务调度完成批量任务处理,降低服务调度和执行时间,而且通过任务监听机制详细记录任务执行日志,而且提供任务多级可控的机制,提升任务执行的交互性,提升软件可使用性。
77.具体的,如图5所示,所述将每一集合分级拆分后按照任务类别组合生成工作流,包括:
78.步骤s31,将所述用户任务发送到任务调度中心,所述任务调度中心将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
79.步骤s32,在任务转化工厂将每一集合根据用户任务拆分规则完成任务分级拆分,然后按照任务类别进行组合编排成一个工作流;
80.步骤s33,所述任务转化工厂将所述工作流按照任务类别寻找对应的线程池和任务队列;以及
81.步骤s34,所述任务转化工厂将所述工作流在所述任务队列中根据任务优先级进行排序,然后依次进入所述线程池。
82.如图6所示,所述对工作流中任务分级执行步骤s4,包括:
83.步骤s41,在工作流执行中心定义任务执行器,所述任务执行器包括一级任务工作和二级任务节点,其中每个工作包含多个节点;
84.步骤s42,调用任务执行器检查所述任务队列;若所述任务队列为空,继续等待;若所述任务队列有工作流,立即从所述任务队列中读取所述工作流的相关信息,分级执行相应动作。
85.如图7、图8所示,所述在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改步骤s5,包括:
86.步骤s51,调用任务监听器执行工作流监听,所述任务监听器获取下一个工作;
87.步骤s52,所述任务监听器判断该工作中的任务是否为空;若是则执行工作流监听结束;若否则执行工作监听;
88.步骤s53,所述任务监听器在执行工作监听时,实时检测是否存在暂停、终止、恢复事件;若存在终止则执行工作流监听结束;若存在暂停则对工作流添加对象锁并释放线程、
等待恢复事件;若不存在暂停、终止、恢复事件则开始执行所述一级任务工作并执行监听事件,按照所述二级任务节点流程获取下一个节点;以及
89.步骤s54,所述任务监听器在获取下一个节点后,判断该节点是否为空;若是则执行工作流监听结束,并返回获取下一个工作步骤;若否则判断是否有控制事件,若是则执行用户自定义节点执行器,直至执行节点监听结束后返回获取下一个节点步骤。
90.在调用所述任务监听器执行工作流监听时,所述任务监听器分级执行工作流监听;其中所述任务监听器包括工作流监听器、一级任务工作监听器、二级任务节点监听器;所述工作流监听器用于执行对工作流的执行过程监听,所述一级任务工作监听器用于执行对所述一级任务工作的执行过程监听,所述二级任务节点监听器用于执行对所述二级任务节点的执行过程监听。
91.因此,本技术采用分级管理的思想,将用户任务划分为二级,对应的任务执行器包括一级任务工作(一级任务work)和二级任务节点(二级任务node),其中每个work(工作)中包含多个node(节点),work中包括node的集合、next work(下一工作)、工作流监听中心、超时时间等信息。相应的,工作流监听中心的监听接口包括工作流监听器(work flow listener)、一级任务监听器(work listener)、二级任务监听器(node listener)。如此可进行全面的二级任务执行和三级任务监听,管理程序可以集成工作流控制中心、任务调度中心、任务执行中心、任务转化工厂、工作流监听中心,实现定义的任务执行器、监听、任务拆分规则、任务回传等接口,完成任务的快速集成,管理程序只需要创建任务并监听管理任务,绑定设备完成任务执行和任务调度,提升了处理效率。
92.本技术实施例可根据用户自定任务拆分规则,完成任务分级拆分成多级任务,然后通过反射技术将用户任务转化成系统定义任务,组成一个工作流,在工作流中按照任务分级依次执行执行器与监听,完成工作流和任务日志记录,并且在工作流中提供双层控制机制完成任务分级控制。通过这种方式不仅能够一次任务调度完成批量任务处理,降低服务调度和执行时间,而且通过任务监听机制,详细记录任务执行日志,而且提供任务多级可控的机制,提升任务执行的交互性,提升软件可使用性。
93.实施例2
94.本技术实施例2中包含了实施例1的全部技术特征,其差异在于,在实施例2中进一步完善了工作流控制中心控制用户任务处于暂停和恢复时的方案。
95.对于每个任务,是可以自定义超时时间,超过时间会结束任务,执行工作流的下一个任务,直到工作流任务全部结束避免任务长时间卡住不能继续执行,此外用户可以通过页面操作控制任务的执行、停止、暂停等。
96.因此,在本实施例中,在对工作流中任务分级执行时,还包括:每个用户任务还设有超时时间,在所述用户任务被执行时超出其对应的超过时间时会结束任务并添加对象锁,执行工作流的下一个任务,直到工作流任务全部结束;所述工作流控制中心通过控制对象锁来控制用户任务的暂停和恢复。
97.在本实施例中,为了方便可视化管理工作流的异常状况,在对工作流中任务分级执行时,还包括:调用工作流控制中心控制用户任务的暂停和恢复,其中所述工作流控制中心包括工作流控制和一级任务控制;所述工作流控制和所述一级任务控制分别设置工作流锁定图(flow lock map)和工作锁定图(work lock map)来控制对应的对象锁,进而控制用
户任务的暂停和恢复。
98.因此本实施例通过对象锁的方式完成任务的动态控制,通过此服务器104不仅可以一次完成多个任务执行,而且可以通过系统完成任务的动态控制,提升软件可使用性。
99.应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
100.在一个实施例中,如图9所示,提供了一种批处理任务动态控制装置10,包括工作流控制中心11、任务调度中心12、任务转化工厂13、工作流执行中心14和工作流监听中心15。
101.工作流控制中心11用于通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级。
102.任务调度中心12用于将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备。
103.任务转化工厂13用于将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序。
104.工作流执行中心14用于对工作流中任务分级执行。
105.工作流监听中心15用于在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
106.上述批处理任务动态控制装置将工作流控制中心11、任务调度中心12、任务转化工厂13、工作流执行中心14和工作流监听中心15这五个部分共同完成服务器管理过程中任务调度和任务分级动态的功能,通过这种方式不仅能够一次任务调度完成批量任务处理,降低服务调度和执行时间,而且通过工作流监听中心15的任务监听机制,可详细记录任务执行日志,而且提供任务多级可控的机制,提升任务执行的交互性,提升软件可使用性。
107.关于批处理任务动态控制装置的具体限定可以参见上文中对于批处理任务动态控制方法的限定,在此不再赘述。上述批处理任务动态控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
108.综上所述,使用本发明方法,在管理系统中实现服务器104的任务执行器、监听、自定义线程池、任务队列等功能,然后通过管理程序创建服务器管理任务,和任务执行设备发送到任务调度中心12,任务调度中心12根据设备的不同到不同任务中心11,在任务中心11首先通过任务转化工厂13将用户任务转化成任务调度中心12支持的任务,并且完成用户任务拆解组合成一个工作流,工作流按照任务分级执行流程完成工作流,并且可以通过工作流监听中心15完成工作流的监听与工作流日志记录。此外还可以通过服务器104的工作流控制中心11的两级控制机制,通过添加对象锁的方式完成任务的分级控制,从而更精细的
完成任务控制,提升用户体验。通过任务拆分组合可以完成多个服务器管理任务一次执行降低用户使用的软件的复杂性,提升软件的可扩展性。
109.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储批处理任务动态控制数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种批处理任务动态控制方法。
110.本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
111.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,请参阅图3,处理器执行计算机程序时实现以下步骤:
112.步骤s1,通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;
113.步骤s1,将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
114.步骤s3,将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;
115.步骤s4,对工作流中任务分级执行;以及
116.步骤s5,在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
117.在一个实施例中,请参阅图5,处理器执行计算机程序时,在所述将每一集合分级拆分后按照任务类别组合生成工作流,具体包括:
118.步骤s31,将所述用户任务发送到任务调度中心,所述任务调度中心将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
119.步骤s32,在任务转化工厂将每一集合根据用户任务拆分规则完成任务分级拆分,然后按照任务类别进行组合编排成一个工作流;
120.步骤s33,所述任务转化工厂将所述工作流按照任务类别寻找对应的线程池和任务队列;以及
121.步骤s34,所述任务转化工厂将所述工作流在所述任务队列中根据任务优先级进行排序,然后依次进入所述线程池。
122.请参阅图6,处理器执行计算机程序时,所述对工作流中任务分级执行步骤s4,具体包括:
123.步骤s41,在工作流执行中心定义任务执行器,所述任务执行器包括一级任务工作和二级任务节点,其中每个工作包含多个节点;
124.步骤s42,调用任务执行器检查所述任务队列;若所述任务队列为空,继续等待;若
所述任务队列有工作流,立即从所述任务队列中读取所述工作流的相关信息,分级执行相应动作。
125.请参阅图7、图8,处理器执行计算机程序时,所述在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改步骤s5,具体包括:
126.步骤s51,调用任务监听器执行工作流监听,所述任务监听器获取下一个工作;
127.步骤s52,所述任务监听器判断该工作中的任务是否为空;若是则执行工作流监听结束;若否则执行工作监听;
128.步骤s53,所述任务监听器在执行工作监听时,实时检测是否存在暂停、终止、恢复事件;若存在终止则执行工作流监听结束;若存在暂停则对工作流添加对象锁并释放线程、等待恢复事件;若不存在暂停、终止、恢复事件则开始执行所述一级任务工作并执行监听事件,按照所述二级任务节点流程获取下一个节点;以及
129.步骤s54,所述任务监听器在获取下一个节点后,判断该节点是否为空;若是则执行工作流监听结束,并返回获取下一个工作步骤;若否则判断是否有控制事件,若是则执行用户自定义节点执行器,直至执行节点监听结束后返回获取下一个节点步骤。
130.在调用所述任务监听器执行工作流监听时,所述任务监听器分级执行工作流监听;其中所述任务监听器包括工作流监听器、一级任务工作监听器、二级任务节点监听器;所述工作流监听器用于执行对工作流的执行过程监听,所述一级任务工作监听器用于执行对所述一级任务工作的执行过程监听,所述二级任务节点监听器用于执行对所述二级任务节点的执行过程监听。
131.因此,本技术采用分级管理的思想,将用户任务划分为二级,对应的任务执行器包括一级任务工作(一级任务work)和二级任务节点(二级任务node),其中每个work(工作)中包含多个node(节点),work中包括node的集合、next work(下一工作)、工作流监听中心、超时时间等信息。相应的,工作流监听中心的监听接口包括工作流监听器(work flow listener)、一级任务监听器(work listener)、二级任务监听器(node listener)。如此可进行全面的二级任务执行和三级任务监听,管理程序可以集成工作流控制中心、任务调度中心、任务执行中心、任务转化工厂、工作流监听中心,实现定义的任务执行器、监听、任务拆分规则、任务回传等接口,完成任务的快速集成,管理程序只需要创建任务并监听管理任务,绑定设备完成任务执行和任务调度,提升了处理效率。
132.本技术实施例可根据用户自定任务拆分规则,完成任务分级拆分成多级任务,然后通过反射技术将用户任务转化成系统定义任务,组成一个工作流,在工作流中按照任务分级依次执行执行器与监听,完成工作流和任务日志记录,并且在工作流中提供双层控制机制完成任务分级控制。通过这种方式不仅能够一次任务调度完成批量任务处理,降低服务调度和执行时间,而且通过任务监听机制,详细记录任务执行日志,而且提供任务多级可控的机制,提升任务执行的交互性,提升软件可使用性。
133.对于每个任务,是可以自定义超时时间,超过时间会结束任务,执行工作流的下一个任务,直到工作流任务全部结束避免任务长时间卡住不能继续执行,此外用户可以通过页面操作控制任务的执行、停止、暂停等。
134.因此,在本实施例中,在对工作流中任务分级执行时,还包括:每个用户任务还设有超时时间,在所述用户任务被执行时超出其对应的超过时间时会结束任务并添加对象
锁,执行工作流的下一个任务,直到工作流任务全部结束;所述工作流控制中心通过控制对象锁来控制用户任务的暂停和恢复。
135.在本实施例中,为了方便可视化管理工作流的异常状况,在对工作流中任务分级执行时,还包括:调用工作流控制中心控制用户任务的暂停和恢复,其中所述工作流控制中心包括工作流控制和一级任务控制;所述工作流控制和所述一级任务控制分别设置工作流锁定图和工作锁定图来控制对应的对象锁,进而控制用户任务的暂停和恢复。
136.因此本实施例通过对象锁的方式完成任务的动态控制,通过此计算机设备不仅可以一次完成多个任务执行,而且可以通过系统完成任务的动态控制,提升软件可使用性。
137.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,请参阅图3,计算机程序被处理器执行时实现以下步骤:
138.步骤s1,通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;
139.步骤s1,将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
140.步骤s3,将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;
141.步骤s4,对工作流中任务分级执行;以及
142.步骤s5,在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。
143.在一个实施例中,请参阅图5,计算机程序被处理器执行时,在所述将每一集合分级拆分后按照任务类别组合生成工作流,具体包括:
144.步骤s31,将所述用户任务发送到任务调度中心,所述任务调度中心将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;
145.步骤s32,在任务转化工厂将每一集合根据用户任务拆分规则完成任务分级拆分,然后按照任务类别进行组合编排成一个工作流;
146.步骤s33,所述任务转化工厂将所述工作流按照任务类别寻找对应的线程池和任务队列;以及
147.步骤s34,所述任务转化工厂将所述工作流在所述任务队列中根据任务优先级进行排序,然后依次进入所述线程池。
148.请参阅图6,计算机程序被处理器执行时,所述对工作流中任务分级执行步骤s4,具体包括:
149.步骤s41,在工作流执行中心定义任务执行器,所述任务执行器包括一级任务工作和二级任务节点,其中每个工作包含多个节点;
150.步骤s42,调用任务执行器检查所述任务队列;若所述任务队列为空,继续等待;若所述任务队列有工作流,立即从所述任务队列中读取所述工作流的相关信息,分级执行相应动作。
151.请参阅图7、图8,计算机程序被处理器执行时,所述在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改步骤s5,具体包括:
152.步骤s51,调用任务监听器执行工作流监听,所述任务监听器获取下一个工作;
153.步骤s52,所述任务监听器判断该工作中的任务是否为空;若是则执行工作流监听结束;若否则执行工作监听;
154.步骤s53,所述任务监听器在执行工作监听时,实时检测是否存在暂停、终止、恢复事件;若存在终止则执行工作流监听结束;若存在暂停则对工作流添加对象锁并释放线程、等待恢复事件;若不存在暂停、终止、恢复事件则开始执行所述一级任务工作并执行监听事件,按照所述二级任务节点流程获取下一个节点;以及
155.步骤s54,所述任务监听器在获取下一个节点后,判断该节点是否为空;若是则执行工作流监听结束,并返回获取下一个工作步骤;若否则判断是否有控制事件,若是则执行用户自定义节点执行器,直至执行节点监听结束后返回获取下一个节点步骤。
156.在调用所述任务监听器执行工作流监听时,所述任务监听器分级执行工作流监听;其中所述任务监听器包括工作流监听器、一级任务工作监听器、二级任务节点监听器;所述工作流监听器用于执行对工作流的执行过程监听,所述一级任务工作监听器用于执行对所述一级任务工作的执行过程监听,所述二级任务节点监听器用于执行对所述二级任务节点的执行过程监听。
157.因此,本技术采用分级管理的思想,将用户任务划分为二级,对应的任务执行器包括一级任务工作(一级任务work)和二级任务节点(二级任务node),其中每个work(工作)中包含多个node(节点),work中包括node的集合、next work(下一工作)、工作流监听中心、超时时间等信息。相应的,工作流监听中心的监听接口包括工作流监听器(work flow listener)、一级任务监听器(work listener)、二级任务监听器(node listener)。如此可进行全面的二级任务执行和三级任务监听,管理程序可以集成工作流控制中心、任务调度中心、任务执行中心、任务转化工厂、工作流监听中心,实现定义的任务执行器、监听、任务拆分规则、任务回传等接口,完成任务的快速集成,管理程序只需要创建任务并监听管理任务,绑定设备完成任务执行和任务调度,提升了处理效率。
158.本技术实施例可根据用户自定任务拆分规则,完成任务分级拆分成多级任务,然后通过反射技术将用户任务转化成系统定义任务,组成一个工作流,在工作流中按照任务分级依次执行执行器与监听,完成工作流和任务日志记录,并且在工作流中提供双层控制机制完成任务分级控制。通过这种方式不仅能够一次任务调度完成批量任务处理,降低服务调度和执行时间,而且通过任务监听机制,详细记录任务执行日志,而且提供任务多级可控的机制,提升任务执行的交互性,提升软件可使用性。
159.对于每个任务,是可以自定义超时时间,超过时间会结束任务,执行工作流的下一个任务,直到工作流任务全部结束避免任务长时间卡住不能继续执行,此外用户可以通过页面操作控制任务的执行、停止、暂停等。
160.因此,在本实施例中,在对工作流中任务分级执行时,还包括:每个用户任务还设有超时时间,在所述用户任务被执行时超出其对应的超过时间时会结束任务并添加对象锁,执行工作流的下一个任务,直到工作流任务全部结束;所述工作流控制中心通过控制对象锁来控制用户任务的暂停和恢复。
161.在本实施例中,为了方便可视化管理工作流的异常状况,在对工作流中任务分级执行时,还包括:调用工作流控制中心控制用户任务的暂停和恢复,其中所述工作流控制中心包括工作流控制和一级任务控制;所述工作流控制和所述一级任务控制分别设置工作流
锁定图和工作锁定图来控制对应的对象锁,进而控制用户任务的暂停和恢复。
162.因此本实施例通过对象锁的方式完成任务的动态控制,通过此计算机可读存储介质存储的计算机程序被处理器执行时不仅可以一次完成多个任务执行,而且可以通过系统完成任务的动态控制,提升软件可使用性。
163.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
164.上述批处理任务动态控制方法、装置、计算机设备和存储介质,通过将用户任务拆解组合成一个工作流,工作流按照任务分级执行流程完成工作流,并且可以通过工作流监听中心完成工作流的监听与工作流日志记录。此外还可以通过服务器的工作流控制中心模块的两级控制机制,通过对任务状态修改时添加对象锁的方式完成任务的分级控制,从而更精细的完成任务控制,提升用户体验。而且通过任务拆分组合可以完成多个服务器管理任务一次执行降低用户使用的软件的复杂性,提升软件的可用性及可扩展性。并结合可视化界面管理任务对应的工作流进程,提高了用户对服务器管理系统的可操作性。
165.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
166.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.一种批处理任务动态控制方法,其特征在于,包括:通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;对工作流中任务分级执行;以及在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。2.根据权利要求1所述的批处理任务动态控制方法,其特征在于,所述将每一集合分级拆分后按照任务类别组合生成工作流,包括:将所述用户任务发送到任务调度中心,所述任务调度中心将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;在任务转化工厂将每一集合根据用户任务拆分规则完成任务分级拆分,然后按照任务类别进行组合编排成一个工作流;所述任务转化工厂将所述工作流按照任务类别寻找对应的线程池和任务队列;以及所述任务转化工厂将所述工作流在所述任务队列中根据任务优先级进行排序,然后依次进入所述线程池。3.根据权利要求2所述的批处理任务动态控制方法,其特征在于,所述对工作流中任务分级执行,包括:在工作流执行中心定义任务执行器,所述任务执行器包括一级任务工作和二级任务节点,其中每个工作包含多个节点;调用任务执行器检查所述任务队列;若所述任务队列为空,继续等待;若所述任务队列有工作流,立即从所述任务队列中读取所述工作流的相关信息,分级执行相应动作。4.根据权利要求3所述的批处理任务动态控制方法,其特征在于,所述在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改,包括:调用任务监听器执行工作流监听,所述任务监听器获取下一个工作;所述任务监听器判断该工作中的任务是否为空;若是则执行工作流监听结束;若否则执行工作监听;所述任务监听器在执行工作监听时,实时检测是否存在暂停、终止、恢复事件;若存在终止则执行工作流监听结束;若存在暂停则对工作流添加对象锁并释放线程、等待恢复事件;若不存在暂停、终止、恢复事件则开始执行所述一级任务工作并执行监听事件,按照所述二级任务节点流程获取下一个节点;所述任务监听器在获取下一个节点后,判断该节点是否为空;若是则执行工作流监听结束,并返回获取下一个工作步骤;若否则判断是否有控制事件,若是则执行用户自定义节点执行器,直至执行节点监听结束后返回获取下一个节点步骤。5.根据权利要求4所述的批处理任务动态控制方法,其特征在于,在对工作流中任务分级执行时,还包括:调用工作流控制中心控制用户任务的暂停和恢复,其中所述工作流控制中心包括工作流控制和一级任务控制;所述工作流控制和所述一级任务控制分别设置工作流锁定图和工
作锁定图来控制对应的对象锁,进而控制用户任务的暂停和恢复。6.根据权利要求4所述的批处理任务动态控制方法,其特征在于,在调用所述任务监听器执行工作流监听时,所述任务监听器分级执行工作流监听;其中所述任务监听器包括工作流监听器、一级任务工作监听器、二级任务节点监听器;所述工作流监听器用于执行对工作流的执行过程监听,所述一级任务工作监听器用于执行对所述一级任务工作的执行过程监听,所述二级任务节点监听器用于执行对所述二级任务节点的执行过程监听。7.根据权利要求1所述的批处理任务动态控制方法,其特征在于,通过所述可视化界面在工作流控制中心进行任务创建或添加、任务删除、任务执行、任务暂停、任务恢复、任务停止的控制;在对工作流中任务分级执行时,还包括:每个用户任务还设有超时时间,在所述用户任务被执行时超出其对应的超过时间时会结束任务并添加对象锁,执行工作流的下一个任务,直到工作流任务全部结束;所述工作流控制中心通过控制对象锁来控制用户任务的暂停和恢复。8.一种批处理任务动态控制装置,其特征在于,所述装置包括:工作流控制中心,用于通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;任务调度中心,用于将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;任务转化工厂,用于将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;工作流执行中心,用于对工作流中任务分级执行;以及工作流监听中心,用于在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请涉及一种批处理任务动态控制方法、装置、计算机设备和存储介质。所述方法包括:通过可视化界面创建或添加用户任务,并设置任务类别、任务绑定设备和任务优先级;将所述用户任务按照每一任务绑定设备分成不同集合,并将每一集合分发到对应的任务绑定设备;将每一集合分级拆分后按照任务类别组合生成工作流,将工作流分配至其对应的线程池和任务队列,并根据任务优先级排序;对工作流中任务分级执行;以及在工作流执行过程中通过对任务监听完成记录任务执行日志和任务状态修改。采用本方法能够完成任务的分级控制,提升用户体验;而且降低用户使用的软件的复杂性,提升软件的可用性及可扩展性,并提高了用户对服务器管理系统的可操作性。的可操作性。的可操作性。


技术研发人员:贾欣欣
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2022.07.22
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-6268.html

最新回复(0)