CN117827536A - 一种任务运行方法及装置 - Google Patents
一种任务运行方法及装置 Download PDFInfo
- Publication number
- CN117827536A CN117827536A CN202311695813.2A CN202311695813A CN117827536A CN 117827536 A CN117827536 A CN 117827536A CN 202311695813 A CN202311695813 A CN 202311695813A CN 117827536 A CN117827536 A CN 117827536A
- Authority
- CN
- China
- Prior art keywords
- subtasks
- task
- persistence
- constructor
- background
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000002688 persistence Effects 0.000 claims abstract description 73
- 230000006399 behavior Effects 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 15
- 238000010276 construction Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000005096 rolling process Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种任务运行方法及装置,方法包括:首先获得组成后台任务的多个子任务,重载子任务,并根据当前重载的子任务构建任务的构造器,然后根据构造器自定义子任务,并对子任务进行编排,分别为后台任务和所有子任务创建对应的用于保存任务状态和运行结果的任务持久化对象,最后启动任务进程以执行所有子任务或回滚所有子任务至初始状态,本申请通过提供权责分明的任务持久化对象,同时满足任务存储的通用性需求和任务行为的个性化需求,且支持灵活的子任务编排方法,减少人工干预。
Description
技术领域
本发明属于计算机技术领域,特别是一种任务运行方法及装置。
背景技术
当今现代政企的核心业务,例如金融系统、政务系统和电信系统等,是关系国计民生的重要领域。这些系统的稳定性和可靠性对于保障人民生活和促进经济发展具有至关重要的作用。然而,这些系统也面临着来自硬件故障、网络故障、自然灾害等各种风险,一旦发生故障,将会对社会安全和经济发展造成严重影响。因此,为了保障系统的稳定运行,需要采取应用容灾技术,实现系统的快速恢复并保障国计民生的持续发展。
应用容灾系统或者容灾系统演练切换,需要检验和切换接入层、应用层、数据库和中间件等多个服务和过程,切换站点需要成功切换各个服务,如果其中一个服务切换失败则自动回退状态。这个过程就像事务一样,要么都成功,要么回滚到初始状态。但随着技术的发展,现代系统的应用架构和拓扑越来越复杂,为容灾系统中的任务编排、任务运行策略和任务运行结果的持久化存储等带来了新的挑战,这成为急需解决的技术问题。
发明内容
本发明的目的是提供一种任务运行方法及装置,以解决现有技术中的不足,它通过实现任务持久化对象实现任务状态和结果的持久化存储,避免在系统重启或者宕机情况下任务状态的丢失,同时实现任务的灵活编排。
本申请的一个实施例提供了一种任务运行方法,所述方法包括:
获得组成后台任务的多个子任务;
重载所述子任务,并根据当前重载的所述子任务构建任务的构造器;
根据所述构造器自定义所述子任务,并对所述子任务进行编排;
分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask;
启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
可选的,所述获得组成后台任务的多个子任务之后,所述方法还包括:
定义所有所述子任务的结果存储结构。
可选的,所述重载所述子任务,并根据当前重载的所述子任务构建任务的构造器,包括:
通过重载和实现BgTaskWrapper定义不同的子任务;其中,所述BgTaskWrapper表示第一行为对象,用于实现所述子任务的正常运行和/或异常状态下的回滚行为;
根据当前重载的所述子任务,并通过重载和实现构造器接口,生成构造器。
可选的,所述对所述子任务进行编排包括串行编排和/或并行编排。
可选的,所述分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象之后,所述方法还包括:
将所述后台任务持久化对象BgJob包装成BgJobWrapper,并在持久层保存初始状态;其中,所述BgJobWrapper表示第二行为对象,用于定义后台任务运行框架,实现所述子任务的编排与执行。
可选的,所述第二行为对象BgJobWrapper采用包装模式装配所述任务持久化对象,并通过调用任务构造工厂实现所述任务持久化对象、所述第一行为对象和所述第二行为对象的封装及转换。
可选的,所述启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态之前,所述方法还包括:
调用所述第二行为对象BgJobWrapper的Process方法,触发任务进程;其中,所述Process方法用于根据当前任务状态判断执行所有所述子任务流程或回滚所有所述子任务至初始状态流程。
本申请的又一实施例提供了一种任务运行装置,所述装置包括:
获得模块,用于获得组成后台任务的多个子任务;
重载模块,用于重载所述子任务,并根据当前重载的所述子任务构建任务的构造器;
编排模块,用于根据所述构造器自定义所述子任务,并对所述子任务进行编排;
创建模块,用于分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask;
执行模块,用于启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
本申请的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时实现上述任一项中所述的方法。
本申请的又一实施例提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述任一项中所述的方法。
与现有技术相比,本发明首先获得组成后台任务的多个子任务,重载子任务,并根据当前重载的子任务构建任务的构造器,然后根据构造器自定义子任务,并对子任务进行编排,分别为后台任务和所有子任务创建对应的用于保存任务状态和运行结果的任务持久化对象,最后启动任务进程以执行所有子任务或回滚所有子任务至初始状态,本申请通过提供权责分明的任务持久化对象,同时满足任务存储的通用性需求和任务行为的个性化需求,且支持灵活的子任务编排方法,减少人工干预。
附图说明
图1为本发明实施例提供的一种任务运行方法的计算机终端的硬件结构框图;
图2为本发明实施例提供的一种任务运行方法的流程示意图;
图3为本发明实施例提供的一种任务运行方法的框架示意图
图4为本发明实施例提供的一种任务运行装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例首先提供了一种任务运行方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图1为本发明实施例提供的一种任务运行方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的任务运行方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
参见图2,图2为本发明实施例提供的一种任务运行方法的流程示意图,可以包括如下步骤:
S201:获得组成后台任务的多个子任务。
示例性的,在数据库同步应用场景中,可能需要自动执行一些后台任务,这些后台任务可以包括多个子任务。
所述获得组成后台任务的多个子任务之后,所述方法还可以包括:
定义所有所述子任务的结果存储结构。
由于各个子任务的运行结果信息各不相同,需要根据实际情况定义。例如不同的子任务可以自定义任务结果数据结构BgResult。
需要说明的是,一个后台任务可以对应一个后台任务持久化对象BgJob,通过定义BgJobType区分不同的任务链,status标注任务的整体状态,permission控制任务的启停。
一个子任务可以对应一个子任务持久化对象BgTask,通过BgTaskType区分不同的子任务类型,Order属性用于记录任务的相对存储顺序,此顺序并非实际的运行顺序,实际运行顺序由领域对象决定,不同任务可能有不同的输出结果,通过把Result定义为Object类型,并通过BgResultType实现任意类型的运行结果数据结构。
参见图3,图3为本发明实施例提供的一种任务运行方法的框架示意图,其中包括利用BgTaskWrapper表示的第一行为对象、利用BgJobWrapper表示的第二行为对象、利用BgJobFactory表示的任务构造工厂以及利用BgJobConstructor表示的构造器,以及后台任务持久化对象BgJob、子任务持久化对象BgTask和任务运行结果数据结构BgResultType,下文会对各个对象或装置的作用详尽描述,在此不再展开。
S202:重载所述子任务,并根据当前重载的所述子任务构建任务的构造器。具体的,所述重载所述子任务,并根据当前重载的所述子任务构建任务的构造器,可以包括:
通过重载和实现BgTaskWrapper定义不同的子任务;其中,所述BgTaskWrapper表示第一行为对象,用于实现所述子任务的正常运行和/或异常状态下的回滚行为;根据当前重载的所述子任务,并通过重载和实现构造器接口,生成构造器。
具体的,通过重载和实现BgTaskWrapper定义不同的子任务,通过重载和实现BgJobConstructor接口中的方法,实现任务的编排。
其中,BgJobConstructor可以理解成一个新任务定义和编排的构造器。
可以理解的是,constructBgJob和defineBgTask方法是后台任务持久化对象BgJob和子任务持久化对象BgTask构建的模版方法,该模版方法可以通过调用initiateBgJob和defineBgTaskWrappers两个接口方法实现。
其中,initiateBgJob负责定义新任务的BgJobType,并初始化后台任务的初始状态和运行许可等;defineBgTaskWrappers负责编排任务链List<BgTaskWrapper>;实现构造器initiateBgJob和defineBgTaskWrappers方法,即可快速定义和编排新的后台任务。
S203:根据所述构造器自定义所述子任务,并对所述子任务进行编排。
具体的,所述对所述子任务进行编排包括串行编排和/或并行编排,例如可以通过实现BgJobConstructor接口,实现任意编排后台任务的子任务。
S204:分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask。
具体的,所述分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象之后,所述方法还可以包括:
将所述后台任务持久化对象BgJob包装成BgJobWrapper,并在持久层保存初始状态;其中,所述BgJobWrapper表示第二行为对象,用于定义后台任务运行框架,实现所述子任务的编排与执行。
其中,所述第二行为对象BgJobWrapper采用包装模式装配所述任务持久化对象,并通过调用任务构造工厂实现所述任务持久化对象、所述第一行为对象和所述第二行为对象的封装及转换。
具体的,第二行为对象BgJobWrapper采用包装模式装配后台任务持久化对象BgJob和子任务持久化对象BgTask,其核心方法包括:wrapBgJob调用任务构造工厂BgJobFactory实现后台任务持久化对象BgJob、子任务持久化对象BgTask、第一行为对象BgTaskWrapper和第二行为对象BgJobWrapper的封装和转换。并通过任务构造工厂BgJobFactory,可以实现根据任务类型(BgJobType)构建任务持久化对象、上述第一行为对象或第二行为对象。
其中,第一行为对象BgTaskWrapper采用包装模式,包装子任务持久化对象BgTask、完成通用的状态和结果更新接口、实现BgTaskWrapperRunner接口。
第二行为对象BgJobWrapper实现BgJobWrapperRunner接口,并实现了整个任务链执行或回滚的运行框架和接口。
自定义子任务行为和对任务进行编排后,可以通过任务构造工厂BgJobFactory构建一个后台任务持久化对象BgJob,并在持久层保存初始状态。BgJobFactory可以把后台任务持久化对象BgJob包装成第二行为对象BgJobWrapper。
需要说明的是,BgJobFactory可以表示一个任务构造工厂,constructBgJobByType根据BgJobType构造后台任务持久化对象BgJob和子任务持久化对象BgTask;constructBgTaskWrapperByJobType根据BgJobType构造第二行为对象BgJobWrapper。
可见,本申请提出的任务持久化对象,可以实现任意类型任务的结果和状态存储。可以理解的是,任务持久化对象是一套通用的存储结构,跟任务的行为无关,通用性使得任意类型的任务状态和结果都可以持久化到存储设备,并从存储设备中恢复。并且通过定义权责分明的任务持久化对象和上述行为对象,同时满足任务存储的通用性需求和任务行为的个性化需求,支持灵活的子任务编排方法并且与存储方法解耦。
S205:启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
具体的,启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态之前,所述方法还可以包括:
调用所述第二行为对象BgJobWrapper的Process方法,触发任务进程;其中,所述Process方法用于根据当前任务状态判断执行所有所述子任务流程或回滚所有所述子任务至初始状态流程。
通过调用第二行为对象BgJobWrapper的Process方法,即可开启任务,并按照预设流程方式执行所有子任务或者回滚所有子任务到初始状态。
进一步的,具体子任务执行只需要分别实现run和rollback方法即可,run方法即正常任务执行行为,rollback方法即回滚行为。
示例性的,run方法的执行即可以从前往后找到第一个状态为WAITING的子任务并执行,若子任务执行失败,则退出,父任务状态更新为ROLL_BACKING;rollback方法的执行即从后往前找到第一个状态为ERROR\ROLL_BACK_ERROR或者FINISHED的任务,并从该任务开始继续往回回滚。
因此,本申请中记载的任务运行框架,可以实现子任务的行为完全由具体实现类实现,通过任务运行框架可以任意编排子任务的相对顺序,并行或者串行执行。子任务完成定义和编排后,任务运行框架负责管理任务链和监控子任务的状态,找到当前需要运行的子任务,所有子任务要么全部执行成功,要么回滚到任务的初始状态,实现了后台任务事务型运行。即上述任务运行框架支持子任务断点自动化执行和/或断点自动化回退等自动化流程,满足子任务要么全部执行成功,要么回退恢复至原始状态。
可见,本申请提出的任务运行方法,可以快速构建和编排子任务并形成任务链,任务链中的子任务可以灵活编排为串行执行或并行执行;各个具体的子任务只需按照本申请中记载的方法和结构具体实现。不仅可以定义具体的子任务行为,而且也使得任务链中的子任务可以完全持久化到存储设备,后续也可以从存储设备恢复任务链继续执行。
与现有技术相比,本发明首先获得组成后台任务的多个子任务,重载子任务,并根据当前重载的子任务构建任务的构造器,然后根据构造器自定义子任务,并对子任务进行编排,分别为后台任务和所有子任务创建对应的用于保存任务状态和运行结果的任务持久化对象,最后启动任务进程以执行所有子任务或回滚所有子任务至初始状态,本申请通过提供权责分明的任务持久化对象,同时满足任务存储的通用性需求和任务行为的个性化需求,且支持灵活的子任务编排方法,减少人工干预。
本申请的又一实施例提供了一种任务运行装置,如图4所示的一种任务运行装置的结构示意图,所述装置包括:
获得模块401,用于获得组成后台任务的多个子任务;
重载模块402,用于重载所述子任务,并根据当前重载的所述子任务构建任务的构造器;
编排模块403,用于根据所述构造器自定义所述子任务,并对所述子任务进行编排;
创建模块404,用于分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask;
执行模块405,用于启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
与现有技术相比,本发明首先获得组成后台任务的多个子任务,重载子任务,并根据当前重载的子任务构建任务的构造器,然后根据构造器自定义子任务,并对子任务进行编排,分别为后台任务和所有子任务创建对应的用于保存任务状态和运行结果的任务持久化对象,最后启动任务进程以执行所有子任务或回滚所有子任务至初始状态,本申请通过提供权责分明的任务持久化对象,同时满足任务存储的通用性需求和任务行为的个性化需求,且支持灵活的子任务编排方法,减少人工干预。
本发明实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时实现上述任一项方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S201:获得组成后台任务的多个子任务;
S202:重载所述子任务,并根据当前重载的所述子任务构建任务的构造器;
S203:根据所述构造器自定义所述子任务,并对所述子任务进行编排;
S204:分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask;
S205:启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
与现有技术相比,本发明首先获得组成后台任务的多个子任务,重载子任务,并根据当前重载的子任务构建任务的构造器,然后根据构造器自定义子任务,并对子任务进行编排,分别为后台任务和所有子任务创建对应的用于保存任务状态和运行结果的任务持久化对象,最后启动任务进程以执行所有子任务或回滚所有子任务至初始状态,本申请通过提供权责分明的任务持久化对象,同时满足任务存储的通用性需求和任务行为的个性化需求,且支持灵活的子任务编排方法,减少人工干预。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
具体的,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S201:获得组成后台任务的多个子任务;
S202:重载所述子任务,并根据当前重载的所述子任务构建任务的构造器;
S203:根据所述构造器自定义所述子任务,并对所述子任务进行编排;
S204:分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask;
S205:启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
与现有技术相比,本发明首先获得组成后台任务的多个子任务,重载子任务,并根据当前重载的子任务构建任务的构造器,然后根据构造器自定义子任务,并对子任务进行编排,分别为后台任务和所有子任务创建对应的用于保存任务状态和运行结果的任务持久化对象,最后启动任务进程以执行所有子任务或回滚所有子任务至初始状态,本申请通过提供权责分明的任务持久化对象,同时满足任务存储的通用性需求和任务行为的个性化需求,且支持灵活的子任务编排方法,减少人工干预。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种任务运行方法,其特征在于,所述方法包括:
获得组成后台任务的多个子任务;
重载所述子任务,并根据当前重载的所述子任务构建任务的构造器;
根据所述构造器自定义所述子任务,并对所述子任务进行编排;
分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask;
启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
2.根据权利要求1所述的方法,其特征在于,所述获得组成后台任务的多个子任务之后,所述方法还包括:
定义所有所述子任务的结果存储结构。
3.根据权利要求1所述的方法,其特征在于,所述重载所述子任务,并根据当前重载的所述子任务构建任务的构造器,包括:
通过重载和实现BgTaskWrapper定义不同的子任务;其中,所述BgTaskWrapper表示第一行为对象,用于实现所述子任务的正常运行和/或异常状态下的回滚行为;
根据当前重载的所述子任务,并通过重载和实现构造器接口,生成构造器。
4.根据权利要求3所述的方法,其特征在于,所述对所述子任务进行编排包括串行编排和/或并行编排。
5.根据权利要求4所述的方法,其特征在于,所述分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象之后,所述方法还包括:
将所述后台任务持久化对象BgJob包装成BgJobWrapper,并在持久层保存初始状态;其中,所述BgJobWrapper表示第二行为对象,用于定义后台任务运行框架,实现所述子任务的编排与执行。
6.根据权利要求5所述的方法,其特征在于,所述第二行为对象BgJobWrapper采用包装模式装配所述任务持久化对象,并通过调用任务构造工厂实现所述任务持久化对象、所述第一行为对象和所述第二行为对象的封装及转换。
7.根据权利要求6所述的方法,其特征在于,所述启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态之前,所述方法还包括:
调用所述第二行为对象BgJobWrapper的Process方法,触发任务进程;其中,所述Process方法用于根据当前任务状态判断执行所有所述子任务流程或回滚所有所述子任务至初始状态流程。
8.一种任务运行装置,其特征在于,所述装置包括:
获得模块,用于获得组成后台任务的多个子任务;
重载模块,用于重载所述子任务,并根据当前重载的所述子任务构建任务的构造器;
编排模块,用于根据所述构造器自定义所述子任务,并对所述子任务进行编排;
创建模块,用于分别为所述后台任务和所有所述子任务创建对应的用于保存任务状态和运行结果的任务持久化对象;其中,所述任务持久化对象包括后台任务持久化对象BgJob和子任务持久化对象BgTask;
执行模块,用于启动任务进程以执行所有所述子任务或回滚所有所述子任务至初始状态。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时实现所述权利要求1至7任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311695813.2A CN117827536A (zh) | 2023-12-11 | 2023-12-11 | 一种任务运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311695813.2A CN117827536A (zh) | 2023-12-11 | 2023-12-11 | 一种任务运行方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827536A true CN117827536A (zh) | 2024-04-05 |
Family
ID=90514397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311695813.2A Pending CN117827536A (zh) | 2023-12-11 | 2023-12-11 | 一种任务运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827536A (zh) |
-
2023
- 2023-12-11 CN CN202311695813.2A patent/CN117827536A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389900B (zh) | 一种分布式数据库集群测试方法、装置及存储介质 | |
CN110109686B (zh) | 一种基于容器管理引擎的应用运维方法和系统 | |
CN110442427B (zh) | 一种虚拟机快照管理方法、装置、设备和存储介质 | |
CN110413428B (zh) | 对账数据的处理方法、电子设备及存储介质 | |
US11223522B1 (en) | Context-based intelligent re-initiation of microservices | |
US8612799B2 (en) | Method and apparatus of backing up subversion repository | |
CN109814877A (zh) | 基于环境管理的项目部署方法及其装置 | |
CN104809045A (zh) | 监控脚本的运行方法及装置 | |
US20190303261A1 (en) | Automating and monitoring rolling cluster reboots | |
US20060282831A1 (en) | Method and hardware node for customized upgrade control | |
CN113254530A (zh) | 移动端离线处理方法、系统、电子设备及存储介质 | |
CN106776206A (zh) | 监听进程状态的方法、装置及电子设备 | |
CN115357395A (zh) | 故障设备任务转移方法及系统、电子设备和存储介质 | |
CN117724803A (zh) | 云服务部署方法、装置和平台 | |
CN111610992B (zh) | 部署组件更新处理方法、装置及存储介质 | |
CN116400987B (zh) | 持续集成方法、装置、电子设备及存储介质 | |
CN117827536A (zh) | 一种任务运行方法及装置 | |
CN112130889A (zh) | 资源的管理方法和装置、存储介质、电子装置 | |
CN111355605A (zh) | 一种云平台的虚拟机故障恢复方法及服务器 | |
CN116541035A (zh) | 容器编排引擎的升级方法、系统、设备及介质 | |
CN116166470A (zh) | Redis集群克隆复制方法及装置、介质、设备 | |
CN109460251B (zh) | 构件集成框架管理方法和装置 | |
CN113297015A (zh) | 磁盘恢复方法以及装置 | |
CN111221587A (zh) | 配置中心的管理调度方法及装置 | |
CN113704016B (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 |