CN114625515A - 一种任务管理方法、装置、设备及存储介质 - Google Patents
一种任务管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114625515A CN114625515A CN202210334877.9A CN202210334877A CN114625515A CN 114625515 A CN114625515 A CN 114625515A CN 202210334877 A CN202210334877 A CN 202210334877A CN 114625515 A CN114625515 A CN 114625515A
- Authority
- CN
- China
- Prior art keywords
- task
- subtask
- target
- executed
- subtasks
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 114
- 238000011084 recovery Methods 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 15
- 238000001914 filtration Methods 0.000 claims description 12
- 230000011218 segmentation Effects 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 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
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种任务管理方法、装置、设备及存储介质,涉及任务管理领域。该方法包括:对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。解决了kubernetes上运行的长时任务中断问题,能够实现长时任务中断后的恢复,并且通过将任务分为多个子任务执行,减少了任务中的重复动作,节省了任务重新执行消耗的大量时间,提高了任务执行效率。
Description
技术领域
本发明涉及任务管理领域,特别涉及一种任务管理方法、装置、设备及存储介质。
背景技术
目前,随着kubernetes的迅猛发展,其在现实中的应用越来越多。pod作为kubernetes的最小管理单元,由一组容器组成,当pod重建时,这一组容器会全部重建,对应容器内的进程也会随之关闭后重新开启,然而,pod的一个重大特点就是,随时可能被重建,由此导致运行在上面的业务随时可能被中断。因此,一个应用如果采用pod方式在kubernetes上运行,其必须考虑的一个问题是,pod如果突然重建,其业务是否会中断,以及是否会造成垃圾数据等问题,尤其是面对长时间任务,降低了长时任务执行效率。因此,如何解决采用pod方式运行在kubernetes上的任务的任务管理是目前亟需解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种任务管理方法、装置、设备及介质,能够提高任务执行效率。其具体方案如下:
第一方面,本申请公开了一种任务管理方法,包括:
对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;
启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;
若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。
可选的,所述对目标执行任务进行分割得到对应数量的子任务之后,还包括:
根据任务基类并引用过滤器注解对每个子任务进行定义,定义后每个所述子任务对应一个参数值。
可选的,所述启动任务进程以执行所述子任务,包括:
通过任务管理器的控制器启动任务进程并从所述参数对象中读取初始参数;
根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述初始参数对应的子任务作为首个待执行子任务,并执行所述首个待执行子任务;
当所述首个待执行子任务执行完成后,通过所述控制器利用所述过滤器根据所述参数对象的当前参数值,从所有所述子任务中过滤出对应的子任务并执行,直至所述目标执行任务的所有子任务均执行完成。
可选的,所述根据当前执行的所述子任务更新所述参数对象,包括:
根据当前执行的所述子任务对应的参数值,更新所述参数对象;
相应的,所述读取所述参数对象以确定进程中断时正在执行的目标子任务,包括:
通过读取所述参数对象获取所述参数对象当前保存的目标参数值;
根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述目标参数值对应的子任务作为进程中断时正在执行的所述目标子任务。
可选的,所述为所述目标执行任务创建对应的用于保存任务执行进度的参数对象,包括:
为所述目标执行任务创建用于保存任务标识、任务名称以及任务执行过程中的任务入参的参数对象,并将所述参数对象以持久性存储方式保存至存储空间。
可选的,所述读取所述参数对象以确定进程中断时正在执行的目标子任务,包括:
根据所述目标执行任务的任务标识,从所述存储空间内确定出与所述目标执行任务对应的所述参数对象;
读取所述参数对象以确定进程中断时正在执行的目标子任务。
可选的,所述对目标执行任务进行分割得到对应数量的子任务,包括:
根据任务幂等性对所述目标执行任务进行分割,以得到对应数量的具有幂等性的子任务。
第二方面,本申请公开了一种任务管理装置,包括:
分割模块,用于对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;
参数对象更新模块,用于启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;
进程恢复模块,用于若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的任务管理方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的任务管理方法。
本申请中,通过对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。可见,通过将目标执行任务分割成多个子任务,并为目标执行任务创建用于保存任务执行进度的参数对象,当任务中断后,通过查询参数对象确定出中断时执行的目标子任务,并从该目标子任务开始重新执行目标任务,解决了kubernetes上运行的长时任务中断问题,能够实现长时任务中断后的恢复,并且通过将任务分为多个子任务执行,减少了任务中的重复动作,节省了任务重新执行消耗的大量时间,提高了任务执行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种任务管理方法流程图;
图2为本申请提供的一种具体子任务定义结构示意图;
图3为本申请提供的一种具体任务执行流程图;
图4为本申请提供的一种具体任务恢复流程图;
图5为本申请提供的一种任务管理装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,一个应用如果采用pod方式在kubernetes上运行,需要面对pod如果突然重建,其业务是否会中断,以及是否会造成垃圾数据等问题。为克服上述技术问题,本申请提出一种kubernetes场景下的长时任务管理的方法,能够提高任务执行效率。
本申请实施例公开了一种任务管理方法,参见图1所示,该方法可以包括以下步骤:
步骤S11:对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象。
本实施例中,获取目标执行任务后,首先对目标执行任务进行分割,以得到对应数量的子任务,并为目标执行任务创建对应的用于保存任务执行进度的参数对象。本实施例中,所述对目标执行任务进行分割得到对应数量的子任务,可以包括:根据任务幂等性对所述目标执行任务进行分割,以得到对应数量的具有幂等性的子任务。幂等任务即一个任务无论成功执行一次还是成功执行多次,都能得到相同的结果,那么这个就是幂等任务;因此,为了确保无论任务中断多少次,无论在何处中断,都确保能得到正确的结果,通过根据任务幂等性对目标执行任务进行分割,以保证后续发生中断后重新执行子任务生成的任务结果的准确性。
本实施例中,所述对目标执行任务进行分割得到对应数量的子任务之后,还可以包括:根据任务基类并引用过滤器注解对每个子任务进行定义,定义后每个所述子任务对应一个参数值。例如图2所示,通过提供任务基类,并通过注解和注解处理器形成过滤器,用户根据任务基类并引用过滤器注解自行实现任务类,任务类继承自任务基类,每个任务类至少包含一组初始参数、一系列子任务方法,并且每个子任务都采用过滤器注解进行定义。也就是说,引用过滤器注解的函数方法认为是一个子任务,引用过滤器时,需声明执行此子任务需满足的参数条件,后续子任务根据参数值更新参数对象后以确保这些所需的参数能从参数对象中获取。
步骤S12:启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象。
本实施例中,启动目标执行任务对应的任务进程后,开始依次执行目标执行任务的子任务,并且每执行一个子任务至少更新一次目标执行任务对应的参数对象。
本实施例中,所述启动任务进程以执行所述子任务,可以包括:通过任务管理器的控制器启动任务进程并从所述参数对象中读取初始参数;根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述初始参数对应的子任务作为首个待执行子任务,并执行所述首个待执行子任务;当所述首个待执行子任务执行完成后,通过所述控制器利用所述过滤器根据所述参数对象的当前参数值,从所有所述子任务中过滤出对应的子任务并执行,直至所述目标执行任务的所有子任务均执行完成。可以理解的是,子任务对应的参数值与任务分割前的目标执行任务的执行流程相关,参数对象最初存有一个初始值,该初始值对应的子任务即目标执行任务的最开始的一个子任务,后续通过不断更新对象参数,根据参数值顺序可以确定出下一个需要执行的子任务,直至所有子任务执行完成。
本实施例中,所述根据当前执行的所述子任务更新所述参数对象,可以包括:根据当前执行的所述子任务对应的参数值,更新所述参数对象。可以理解的是,参数对象的更新依赖于具体每个子任务的实现,通常来讲,在每个子任务中,都至少有一次更新参数对象的操作,通过读取参数对象,需要能够准确判断出已经执行的子任务,未执行的子任务;并且参数对象还可以用于保存任务执行过程中的标记,以判断在已经执行的子任务中,执行成功的子任务,未执行成功需要重新执行的子任务。
本实施例中,所述为所述目标执行任务创建对应的用于保存任务执行进度的参数对象,可以包括:为所述目标执行任务创建用于保存任务标识(ID)、任务名称以及任务执行过程中的任务入参的参数对象(即更新的当前执行的子任务的参数值),并将所述参数对象以持久性存储方式保存至存储空间。即上述参数对象用于保存任务所需入参并记录任务的进度。即参数对象可以用来记录任务ID、任务对应的任务类名称、任务入参、任务执行过程中的标记等,以便根据其判断子任务的执行情况。为了确保任务再次执行时能够获取到参数对象应有的入参从而正确恢复任务,这些入参不能只存在于内存中,需要以一种可持久的方式保存,比如数据库、文件,以确保任务进程中断后能够正常获取。具体的,本实施例中参数对象可以以configmap的形式存储,格式可以采用易解析的json格式;其中,configmap是kubernetes平台中的一种资源,用来记录一组文本信息,文本可以是任意格式。
步骤S13:若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。
本实施例中,当任务进程中断后,读取目标执行任务对应的参数对象以确定进程中断时正在执行的目标子任务,并重新执行该目标子任务以恢复任务进程。由此,本实施例中通过把需要长时间执行的任务切割成一个个的子任务,且目标执行任务对应维护一个参数对象,在子任务执行过程中,按需更新参数对象中的内容,任务中断后,可以读取这个参数对象来判断上次执行到什么进度,并据此判断下一步需要执行哪些子任务。适用于步骤繁多、耗时较长的复杂任务,且具备较好的通用性。
本实施例中,所述读取所述参数对象以确定进程中断时正在执行的目标子任务,可以包括:通过读取所述参数对象获取所述参数对象当前保存的目标参数值;根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述目标参数值对应的子任务作为进程中断时正在执行的所述目标子任务。可以理解的是,过滤器根据从参数对象获取的参数值作为子任务的触发条件,引用过滤器时,通过提供参数值来标识满足哪些条件时需要触发此子任务,而当过滤器无法匹配到任何子任务时,则认为该目标执行任务已执行完毕,可以删除对应的参数对象并退出任务进程。
本实施例中,所述读取所述参数对象以确定进程中断时正在执行的目标子任务,可以包括:根据所述目标执行任务的任务标识,从所述存储空间内确定出与所述目标执行任务对应的所述参数对象;读取所述参数对象以确定进程中断时正在执行的目标子任务。可以理解的是,由于***中可能会同时存在多个任务进程,也就存在多个参数对象,因此需要在任务中断后确定出该任务对应的参数对象,本实施例中通过任务标识进行区分。
下面通过举例说明阐述本实施例的工作流程,如图3所示,业务进程使用本实施例创建一个长时任务的流程如下:
1、业务进程根据任务基类并引用过滤器注解创建任务类A的一个实例;
2、业务进程调用任务管理器的控制器,并将任务实例A传递过去;
3、控制器创建任务进程A,并生成任务ID;
4、控制器调用k8s-client(连接kubernetes并操作其资源的客户端对象),创建参数对象configmap-A,并将任务实例的初始参数写入到configmap-A,本例中初始参数a=1,此外,还要记录任务ID以及对应的任务类名称;
5、控制器根据初始参数a=1,结合过滤器,过滤出匹配的子任务,本例中匹配到的子任务是action1,控制器调用执行action1;
6、action1正常执行,并调用k8s-client更新参数值a=2;
7、action1执行结束,正常返回给控制器;
8、当前参数值a=2,结合过滤器,控制器据此判断,下一步需要执行子任务action2,控制器调用执行action2;
9、action2正常执行,并调用k8s-client更新参数值a=3;
10、action2执行结束,正常返回给控制器;
11、当前参数a=3,结合过滤器,控制器发现没有任何子任务匹配到此条件,控制器认为任务A已经执行完成,调用k8s-client删除参数对象configmap-A。
例如图4所示,以上述图3为基础,若假设在执行action2时突然宕机,action2异常中断,此时还没有更新参数,a=2,任务进程异常中断后恢复任务的流程如下:
1、控制器启动时首先调用k8s-client遍历参数对象,发现configmap-A,读取其任务ID、对应的任务类名称、参数值;
2、根据任务类名称找到对应任务类,创建该类的实例;
3、开启任务进程;
4、根据当前参数值a=2,结合过滤器筛选出符合条件的子任务,在本例中,符合条件的子任务是action2,然后调用执行action2;
5、action2正常执行后更新参数值a=3;
6、action2正常返回;
7、根据当前参数值a=3,结合过滤器没有发现任何符合条件的子任务,控制器认为任务已经执行完成,调用k8s-client删除参数对象,退出任务进程A。其中,上述图3和图4中,apiserver为kubernetes的核心服务之一,用于提供一系列http接口,外部可通过这些接口查询和操作kubernetes资源;任务管理器用于负责任务进程的生命周期管理;任务管理器中的控制器负责任务的生命周期管理,用于按需创建多个异步任务进程,每个任务进程根据相应参数对象中的参数值和状态值来判断任务的执行进度,并根据过滤器中声明的参数条件判断出下一步需要执行的子任务,并触发这些子任务,当不再有任何子任务能够与参数值匹配时,则认为任务已结束,退出相应任务进程。由上可见,在action1正常执行后及时更新了参数对象,任务中断后便不再需要再次执行action1,从action2开始执行,即正常恢复了任务,同时又避免了一些重复动作。
由上可见,本实施例中通过对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。可见,通过将目标执行任务分割成多个子任务,并为目标执行任务创建用于保存任务执行进度的参数对象,当任务中断后,通过查询参数对象确定出中断时执行的目标子任务,并从该目标子任务开始重新执行目标任务,解决了kubernetes上运行的长时任务中断问题,能够实现长时任务中断后的恢复,并且通过将任务分为多个子任务执行,减少了任务中的重复动作,节省了任务重新执行消耗的大量时间,提高了任务执行效率。
相应的,本申请实施例还公开了一种任务管理装置,参见图5所示,该装置包括:
分割模块11,用于对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;
参数对象更新模块12,用于启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;
进程恢复模块13,用于若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。
由上可见,本实施例中通过对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。可见,通过将目标执行任务分割成多个子任务,并为目标执行任务创建用于保存任务执行进度的参数对象,当任务中断后,通过查询参数对象确定出中断时执行的目标子任务,并从该目标子任务开始重新执行目标任务,解决了kubernetes上运行的长时任务中断问题,能够实现长时任务中断后的恢复,并且通过将任务分为多个子任务执行,减少了任务中的重复动作,节省了任务重新执行消耗的大量时间,提高了任务执行效率。
在一些具体实施例中,所述任务管理装置具体可以包括:
子任务定义单元,用于根据任务基类并引用过滤器注解对每个子任务进行定义,定义后每个所述子任务对应一个参数值。
在一些具体实施例中,所述参数对象更新模块12具体可以包括:
初始参数读取单元,用于通过任务管理器的控制器启动任务进程并从所述参数对象中读取初始参数;
首个待执行子任务执行单元,用于根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述初始参数对应的子任务作为首个待执行子任务,并执行所述首个待执行子任务;
其余子任务执行单元,用于当所述首个待执行子任务执行完成后,通过所述控制器利用所述过滤器根据所述参数对象的当前参数值,从所有所述子任务中过滤出对应的子任务并执行,直至所述目标执行任务的所有子任务均执行完成。
在一些具体实施例中,所述参数对象更新模块12具体可以包括:
参数对象更新单元,用于根据当前执行的所述子任务对应的参数值,更新所述参数对象;
相应的,所述进程恢复模块13具体可以包括:
目标参数值确定单元,用于通过读取所述参数对象获取所述参数对象当前保存的目标参数值;
目标子任务确定单元,用于根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述目标参数值对应的子任务作为进程中断时正在执行的所述目标子任务。
在一些具体实施例中,所述分割模块11具体可以用于为所述目标执行任务创建用于保存任务标识、任务名称以及任务执行过程中的任务入参的参数对象,并将所述参数对象以持久性存储方式保存至存储空间。
在一些具体实施例中,所述进程恢复模块13具体可以包括:
参数对象确定单元,用于根据所述目标执行任务的任务标识,从所述存储空间内确定出与所述目标执行任务对应的所述参数对象;
目标子任务确定单元,用于读取所述参数对象以确定进程中断时正在执行的目标子任务。
在一些具体实施例中,所述分割模块11具体可以用于根据任务幂等性对所述目标执行任务进行分割,以得到对应数量的具有幂等性的子任务。
进一步的,本申请实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的任务管理方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作***221、计算机程序222及包括训练集在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作***221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的任务管理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的任务管理方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种任务管理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种任务管理方法,其特征在于,包括:
对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;
启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;
若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。
2.根据权利要求1所述的任务管理方法,其特征在于,所述对目标执行任务进行分割得到对应数量的子任务之后,还包括:
根据任务基类并引用过滤器注解对每个子任务进行定义,定义后每个所述子任务对应一个参数值。
3.根据权利要求2所述的任务管理方法,其特征在于,所述启动任务进程以执行所述子任务,包括:
通过任务管理器的控制器启动任务进程并从所述参数对象中读取初始参数;
根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述初始参数对应的子任务作为首个待执行子任务,并执行所述首个待执行子任务;
当所述首个待执行子任务执行完成后,通过所述控制器利用所述过滤器根据所述参数对象的当前参数值,从所有所述子任务中过滤出对应的子任务并执行,直至所述目标执行任务的所有子任务均执行完成。
4.根据权利要求2所述的任务管理方法,其特征在于,所述根据当前执行的所述子任务更新所述参数对象,包括:
根据当前执行的所述子任务对应的参数值,更新所述参数对象;
相应的,所述读取所述参数对象以确定进程中断时正在执行的目标子任务,包括:
通过读取所述参数对象获取所述参数对象当前保存的目标参数值;
根据每个所述子任务对应的参数值,利用过滤器从所有所述子任务中过滤出与所述目标参数值对应的子任务作为进程中断时正在执行的所述目标子任务。
5.根据权利要求1所述的任务管理方法,其特征在于,所述为所述目标执行任务创建对应的用于保存任务执行进度的参数对象,包括:
为所述目标执行任务创建用于保存任务标识、任务名称以及任务执行过程中的任务入参的参数对象,并将所述参数对象以持久性存储方式保存至存储空间。
6.根据权利要求5所述的任务管理方法,其特征在于,所述读取所述参数对象以确定进程中断时正在执行的目标子任务,包括:
根据所述目标执行任务的任务标识,从所述存储空间内确定出与所述目标执行任务对应的所述参数对象;
读取所述参数对象以确定进程中断时正在执行的目标子任务。
7.根据权利要求1至6任一项所述的任务管理方法,其特征在于,所述对目标执行任务进行分割得到对应数量的子任务,包括:
根据任务幂等性对所述目标执行任务进行分割,以得到对应数量的具有幂等性的子任务。
8.一种任务管理装置,其特征在于,包括:
分割模块,用于对目标执行任务进行分割得到对应数量的子任务,并为所述目标执行任务创建对应的用于保存任务执行进度的参数对象;
参数对象更新模块,用于启动任务进程以执行所述子任务,并根据当前执行的所述子任务更新所述参数对象;
进程恢复模块,用于若所述任务进程中断,则读取所述参数对象以确定进程中断时正在执行的目标子任务,并重新执行所述目标子任务以恢复所述任务进程。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的任务管理方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至7任一项所述的任务管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210334877.9A CN114625515A (zh) | 2022-03-31 | 2022-03-31 | 一种任务管理方法、装置、设备及存储介质 |
PCT/CN2022/141660 WO2023185137A1 (zh) | 2022-03-31 | 2022-12-23 | 一种任务管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210334877.9A CN114625515A (zh) | 2022-03-31 | 2022-03-31 | 一种任务管理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625515A true CN114625515A (zh) | 2022-06-14 |
Family
ID=81905481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210334877.9A Pending CN114625515A (zh) | 2022-03-31 | 2022-03-31 | 一种任务管理方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114625515A (zh) |
WO (1) | WO2023185137A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023185137A1 (zh) * | 2022-03-31 | 2023-10-05 | 苏州浪潮智能科技有限公司 | 一种任务管理方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2764235A1 (en) * | 2009-06-19 | 2010-12-23 | Core Technology Ltd | Computer process management |
CN109558237A (zh) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | 一种任务状态管理方法及装置 |
CN113076182B (zh) * | 2021-03-24 | 2024-03-29 | 成都海光集成电路设计有限公司 | 计算任务的恢复方法、装置、用户设备及存储介质 |
CN114625515A (zh) * | 2022-03-31 | 2022-06-14 | 苏州浪潮智能科技有限公司 | 一种任务管理方法、装置、设备及存储介质 |
-
2022
- 2022-03-31 CN CN202210334877.9A patent/CN114625515A/zh active Pending
- 2022-12-23 WO PCT/CN2022/141660 patent/WO2023185137A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023185137A1 (zh) * | 2022-03-31 | 2023-10-05 | 苏州浪潮智能科技有限公司 | 一种任务管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023185137A1 (zh) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113760476B (zh) | 任务依赖处理方法及相关装置 | |
CN110362418B (zh) | 一种异常数据恢复方法、装置、服务器及存储介质 | |
CN111026568A (zh) | 数据和任务关系构建方法、装置、计算机设备及存储介质 | |
CN113656407A (zh) | 一种数据拓扑生成方法、装置、电子设备及存储介质 | |
CN112817710A (zh) | 定时任务处理方法、***、计算机设备及计算机存储介质 | |
CN114625515A (zh) | 一种任务管理方法、装置、设备及存储介质 | |
CN110868309A (zh) | Vnfm中资源处理的方法、装置及计算机存储介质 | |
CN111966466A (zh) | 一种容器管理方法、设备以及介质 | |
CN110365809B (zh) | 分布式服务器地址配置***及方法 | |
CN109582386B (zh) | 服务启动处理方法、装置、电子设备及可读存储介质 | |
US11216352B2 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
CN107741885B (zh) | 基于cs架构的事务与业务关联方法、关联*** | |
CN114327819B (zh) | 一种任务管理方法、装置、设备及存储介质 | |
CN115203260A (zh) | 一种异常数据确定方法、装置、电子设备及存储介质 | |
CN113986495A (zh) | 一种任务执行方法、装置、设备及存储介质 | |
CN111858234A (zh) | 一种任务执行方法、装置、设备、介质 | |
CN108363614B (zh) | 一种应用的业务模块管理方法、装置及服务器 | |
CN112148463B (zh) | 一种业务流程控制方法及装置 | |
CN113655964B (zh) | 数据卷的处理方法、装置、电子设备、介质及程序产品 | |
CN115086314B (zh) | 一种交互数据处理的方法和相关装置 | |
CN117632443B (zh) | 业务流程的流转控制方法及装置、设备、介质 | |
CN112019385B (zh) | 一种云平台组件删除方法、装置、设备及存储介质 | |
US8825610B1 (en) | System management based on goals relevant to a current state of a managed system | |
EP2975516A1 (en) | Intelligent application back stack management | |
CN116302825A (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 |