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

任务管理方法、装置、系统、电子设备和存储介质与流程

2022-11-14 11:55:37 来源:中国专利 TAG:


1.本公开涉及大数据领域,更具体地涉及一种任务管理方法、装置、系统、电子设备、存储介质和程序产品。


背景技术:

2.在现代大型企业,数据是一个企业重要的资产之一。保证数据的安全需要一个企业做出非常多的努力。通常利用数据库管理平台管理大量的分布式数据库集群,这些数据库会在定期(定时任务)或不定期(手动)使用工具进行数据的备份或者恢复任务。例如生产中的数据库在不停存储数据的同时,除开以在线从库同步备份主库的方式外,还会定期进行数据的冷备。当数据库集群出现故障时,需要进行数据库的恢复操作。


技术实现要素:

3.在实现本公开发明构思的过程中,发明人发现现有技术中至少存在以下问题:
4.1)在单个数据库上进行备份恢复操作是简单的,但是在分布式数据库集群中纳管着大量的数据库集群,大量备份恢复任务导致数据库管理平台的处理压力,若备份恢复功能异常可能会导致整个数据库管理平台不能使用。
5.2)大量的数据库集群的备份恢复场景复杂,将备份恢复任务从数据库管理平台简单的发送到数据库服务器中执行,容易出现任务执行异常的情况。
6.鉴于上述问题,本公开提供了一种任务管理方法、装置、系统、电子设备、存储介质和程序产品。
7.本公开实施例的一个方面提供了一种任务管理方法,用于管理服务,包括:接收数据库管理平台发送的备份恢复任务,所述数据库管理平台与所述管理服务互相独立运行,所述管理服务用于管理n个代理服务,n为大于或等于1的整数;从所述n个代理服务中确定执行所述备份恢复任务的目标代理服务;检查所述目标代理服务执行所述备份恢复任务的第一执行条件,其中,所述第一执行条件包括所述备份恢复任务与所述目标代理服务的未完成任务之间的关联关系,或所述目标代理服务的执行环境;若所述第一执行条件满足第一预设要求,将所述备份恢复任务发送至所述目标代理服务,其中,所述目标代理服务被配置为执行所述备份恢复任务。
8.根据本公开的实施例,所述检查所述目标代理服务执行所述备份恢复任务的第一执行条件包括检查所述关联关系,具体包括:获取所述目标代理服务的m个所述未完成任务,m为大于或等于1的整数;对比所述备份恢复任务与m个所述未完成任务中任一个未完成任务之间的任务信息,获得对比结果,其中,所述任务信息包括任务发起时间、任务执行时间、任务标识、任务类型或目标数据中的至少一种信息。
9.根据本公开的实施例,在所述获得对比结果之后,在所述备份恢复任务与所述任一个未完成任务之间的任务发起时间间隔小于第一阈值,且任务类型相同的情况下:若所述备份恢复任务与该未完成任务之间的部分其他任务信息相同,确定所述关联关系为重复
关系;在所述关联关系为重复关系的情况下,所述第一执行条件不满足所述第一预设要求。
10.根据本公开的实施例,在所述获得对比结果之后,在所述备份恢复任务与所述任一个未完成任务之间的目标数据相同,且任务类型不同的情况下:若所述备份恢复任务与该未完成任务之间的执行时间间隔小于第二阈值,确定所述关联关系为互斥关系;在所述关联关系为互斥关系的情况下,所述第一执行条件不满足所述第一预设要求。
11.根据本公开的实施例,所述检查所述目标代理服务执行所述备份恢复任务的第一执行条件包括检查所述执行环境,具体包括:向所述目标代理服务发送执行环境查询请求;接收所述目标代理服务响应于所述执行环境查询请求返回的查询结果,其中,所述查询结果包括所述目标代理服务的执行准备状态,或所述目标代理服务所在数据库节点的存储空间状态。
12.根据本公开的实施例,若所述第一执行条件满足第一预设要求,将所述备份恢复任务放入任务管理队列,所述将所述备份恢复任务发送至所述目标代理服务包括:从所述任务管理队列取出所述备份恢复任务;查询所述目标代理服务的运行状态;若所述运行状态为正常,将所述备份恢复任务发送至所述目标代理服务。
13.根据本公开的实施例,若所述运行状态为非正常,将所述备份恢复任务重新放入所述任务管理队列等待执行。
14.根据本公开的实施例,所述方法还包括:根据所述任务管理队列中每个待执行任务的执行次数,分配对应的执行权重;根据所述每个待执行任务的执行权重,确定取出顺序。
15.本公开实施例的另一方面提供了一种任务管理方法,用于目标代理服务,所述目标代理服务为n个代理服务中的任一个,n为大于或等于1的整数,所述方法包括:接收管理服务发送的备份恢复任务,其中,所述管理服务被配置为在检查所述目标代理服务执行所述备份恢复任务的第一执行条件满足第一预设要求的情况下,发送所述备份恢复任务;检查执行所述备份恢复任务的第二执行条件,其中,所述第二执行条件包括所述备份恢复任务与所述目标代理服务的未完成任务之间的关联关系;若所述第二执行条件满足第二预设要求,执行所述备份恢复任务。
16.本公开实施例的另一方面提供了一种任务管理装置,用于管理服务,包括:第一接收模块,用于接收数据库管理平台发送的备份恢复任务,所述数据库管理平台与所述管理服务互相独立运行,所述管理服务用于管理n个代理服务,n为大于或等于1的整数;代理确定模块,用于从所述n个代理服务中确定执行所述备份恢复任务的目标代理服务;第一检查模块,用于检查所述目标代理服务执行所述备份恢复任务的第一执行条件,其中,所述第一执行条件包括所述备份恢复任务与所述目标代理服务的未完成任务之间的关联关系,或所述目标代理服务的执行环境;任务发送模块,用于若所述第一执行条件满足第一预设要求,将所述备份恢复任务发送至所述目标代理服务,其中,所述目标代理服务被配置为执行所述备份恢复任务。
17.根据本公开的实施例,所述用于管理服务的任务管理装置包括分别用于执行如上所述用于管理服务的任意一项任务管理方法的各个步骤的模块。
18.本公开实施例的另一方面提供了一种任务管理装置,用于目标代理服务,所述目标代理服务为n个代理服务中的任一个,n为大于或等于1的整数,所述装置包括:第二接收
模块,用于接收管理服务发送的备份恢复任务,其中,所述管理服务被配置为在检查所述目标代理服务执行所述备份恢复任务的第一执行条件满足第一预设要求的情况下,发送所述备份恢复任务;第二检查模块,用于检查执行所述备份恢复任务的第二执行条件,其中,所述第二执行条件包括所述备份恢复任务与所述目标代理服务的未完成任务之间的关联关系;任务执行模块,用于若所述第二执行条件满足第二预设要求,执行所述备份恢复任务。
19.根据本公开的实施例,所述用于目标代理服务的任务管理装置包括分别用于执行如上所述用于目标代理服务的任意一项任务管理方法的各个步骤的模块。
20.本公开实施例的另一方面提供了一种任务管理系统,包括:数据库管理平台,用于向管理服务发送备份恢复任务;所述管理服务,用于执行如上所述的用于管理服务的任务管理方法以将所述备份恢复任务发送至目标代理服务;n个代理服务,所述n个代理服务包括所述目标代理服务,其中,所述目标代理服务用于执行如上所述的用于目标代理服务的任务管理方法以接收并执行所述备份恢复任务,n为大于或等于1的整数。
21.本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
22.本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
23.本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
24.上述一个或多个实施例具有如下有益效果:
25.1)利用本公开实施例的用于管理服务的任务管理方法,将数据库管理平台中的备份恢复功能拆分到独立的管理服务中管理,降低了数据库管理平台的处理压力,还降低了可能由备份恢复功能异常导致整个数据库管理平台不能使用的风险,也可以缓解短时间提交大量备份恢复任务时造成数据库管理平台的拥堵。另外,拆分备份恢复功能独立管理,检查第一执行条件是否满足第一预设要求,可以更加精准的管理备份恢复任务,避免执行异常。
26.2)利用本公开实施例的用于目标代理服务的任务管理方法,接收管理服务发送的第一执行条件满足第一预设要求的备份管理任务,并在目标代理服务端检查备份管理任务的第二执行条件是否满足第二预设要求,若满足第二预设要求,则执行备份恢复任务。通过二段式管理所有备份恢复任务的方式,可以保障数据库的备份恢复任务有序顺利进行,避免任务执行异常的情况发生。
附图说明
27.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
28.图1示意性示出了根据本公开实施例的任务管理系统的架构图;
29.图2示意性示出了根据本公开实施例的用于管理服务的任务管理方法的流程图;
30.图3示意性示出了根据本公开实施例的检查关联关系的流程图;
31.图4示意性示出了根据本公开实施例的处理互斥任务的流程图;
32.图5示意性示出了根据本公开实施例的检查执行环境的流程图;
33.图6示意性示出了根据本公开实施例的发送备份恢复任务的流程图;
34.图7示意性示出了根据本公开实施例的加权执行任务的流程图;
35.图8示意性示出了根据本公开实施例的用于代理服务的任务管理方法的流程图;
36.图9示意性示出了根据本公开实施例的用于管理服务的任务管理装置的结构框图;
37.图10示意性示出了根据本公开实施例的用于代理服务的任务管理装置的结构框图;
38.图11示意性示出了根据本公开实施例的适于实现任务管理方法的电子设备的方框图。
具体实施方式
39.为了便于理解本公开实施例的技术方案,首先对本公开涉及的一些技术术语进行介绍。
40.数据库管理平台又称database manager platform,简称dmp。主要是管理、配置和监控数据库。辅助运维人员对大量数据库集群进行管理,减少运维人员的工作并降低由人为因素造成的错误。可以对大量数据库集群进行360度全方位的状态及资源进行监控,确保数据库服务能够7x365日无异常无间断提供服务。
41.管理服务(manager)为管理备份恢复任务的主要服务并同时管理代理服务。一个管理服务同时对应n个代理服务(agent)。管理服务110具有高可用性。
42.代理服务(agent)是备份恢复任务的执行端,此服务通常部署到数据节点中,跟数据库同在一台服务器,当有备份恢复任务送达时,则执行相应的任务。
43.备份恢复任务(task)为备份任务或恢复任务的统称,指的是一个对数据库进行数据备份或者恢复的一系列执行过程。备份恢复任务可以分为不同类型的任务,包括全量备份任务、增量备份任务和恢复任务等。
44.rpc,全称remote procedure call,中文译为远程过程调用。通俗地讲,使用rpc进行通信,调用远程函数就像调用本地函数一样,使用调用者忽略区分本地或远端执行。grpc则是基于google公司开发的protobuf(全称protocol buffers)序列化协议的rpc(远程过程调用)。
45.数据节点(data node)为用于安装数据库,并向外提供数据库服务的服务器或服务器集群。
46.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
47.图1示意性示出了根据本公开实施例的任务管理系统的架构图。
48.如图1所示,根据该实施例的任务管理系统100可以包括数据库管理平台110、管理服务120和n个数据节点130。数据库管理平台110可以包括数据库管理平台客户端111和数
据库管理平台服务112。n个数据节点130包括数据节点1、数据节点2
……
数据节点n。每个数据节点由代理服务和数据库(或数据库集群)组成。因此,任务管理系统100包括代理服务1、代理服务2
……
代理服务n。
49.根据本公开的实施例,数据库管理平台110用于向管理服务120发送备份恢复任务。管理服务120可以执行本公开实施例提供的用于管理服务的任务管理方法以将备份恢复任务发送至目标代理服务。n个代理服务中目标代理服务可以本公开实施例提供的用于目标代理服务的任务管理方法以接收并执行备份恢复任务,n为大于或等于1的整数。
50.下面具体介绍任务管理系统的各个组成部分。
51.数据库管理平台客户端111可以安装在终端设备(如手机、电脑或其他设备)中,负责用户交互,处理用户发起的操作、向用户展示平台相关数据。
52.数据库管理平台服务112可以安装在服务器中,负责管理数据库的运维工作,包括不限于数据库的安装、纳管、集群、监控、备份恢复等工作以及管理触发定时备份任务。
53.管理服务(manager)120可以安装在服务器中,负责管理代理服务,通过与代理服务建立连接,利用心跳上报机制探活代理服务。负责管理数据库管理平台下达的备份恢复任务,管理备份恢复任务的状态,检查新发起的备份恢复任务是否重复任务,重试失败的备份恢复任务,同时收集任务的完成情况,并向数据库管理平台反馈任务完成情况并在数据库管理平台客户端展示。
54.n个代理服务(agent)为数据库备份恢复任务的主要工作单元,每个代理服务与数据库(或数据库集群)安装在同一服务器,负责执行对应数据库的备份恢复工作。当执行备份任务时,代理服务锁定数据库,把指定备份范围的数据备份到临时目录,然后把备份的数据进行打包放入指定的备份目录,最后释放数据的锁定。当执行恢复任务时,先停止数据库,接着拷贝需要恢复的备份到临时目录,解压缩,再进行恢复,最后启动数据库。
55.根据本公开的实施例,利用任务管理系统100可以通过数据库管理平台手动或者自动发起备份恢复任务,然后由数据库管理平台发送任务到管理服务(manager)。由管理服务(manager)进行任务的检查,并判断是否存在重复或者互斥任务,防止重复提交相同的任务到系统中,然后再根据任务所属的数据节点,发送到对应的代理服务(agent)进行任务的执行。
56.根据本公开的实施例,利用任务管理系统100可以分为两段进行管理备份恢复任务(task),第1阶段在管理服务(manager)中进行,此阶段主要把备份恢复任务管理功能从数据库管理平台中拆分出来,从而使得数据管理平台的压力得到减缓,然后把从数据库管理平台接受到的任务进行初步的管理,防止错误提交、重复提交、提交互斥任务,然后查找任务对应的代理服务(agent)进行任务分派执行,如果存在挂起的任务,管理服务(manager)则会尝试恢复这些任务。
57.第2阶段在代理服务(agent)中进行,管理服务(manager)将任务发送到代理服务(agent)执行,代理服务(agent)接收到的任务进行排队,如果短时间出现相同类型的任务,则进行任务的删减,并向管理服务(manager)返回删除原因,正常执行的任务将会得到执行结果,并将执行结果发送至管理服务(manager)。
58.以下将基于图1所示的任务管理系统100,通过图2~图8对本公开实施例的任务管理方法进行详细描述。
59.图2示意性示出了根据本公开实施例的用于管理服务的任务管理方法的流程图。
60.如图2所示,该实施例的任务管理方法包括操作s210~操作s240。
61.在操作s210,接收数据库管理平台发送的备份恢复任务,数据库管理平台与管理服务互相独立运行,管理服务用于管理n个代理服务,n为大于或等于1的整数。
62.参照图1,运维人员可以通过数据库管理平台客户端111手动发起备份恢复任务或者由数据库管理平台服务112定时发起备份任务,创建一个备份恢复任务(task)。数据库管理平台服务112可以进行任务判断,例如包括参数判断(如操作用户权限、数据库实例id、存储路径、备份范围等)及管理服务120是否正常运行中。
63.数据库管理平台服务112将备份恢复任务(task)通过grpc远程调用方式发送到管理服务120。
64.在操作s220,从n个代理服务中确定执行备份恢复任务的目标代理服务。
65.示例性地,管理服务120接收到任务后,判断是否有合适的代理服务能够执行该任务,如果不存在,则直接判断为异常任务,向数据库管理平台服务112反馈错误结果。具体而言,可以获得备份恢复任务中的数据库节点信息,然后根据数据库节点信息确定对应的目标代理服务。
66.在操作s230,检查目标代理服务执行备份恢复任务的第一执行条件,其中,第一执行条件包括备份恢复任务与目标代理服务的未完成任务之间的关联关系,或目标代理服务的执行环境。
67.相关技术中,将备份恢复任务(task)简单的发送到数据库服务器中执行,这种方法容易出现任务重复发送、任务发送失败、发送失败也无法重新发送,或者任务遭遇外部原因中止而无法恢复执行等情况。
68.通过关联关系的确定可以判断任务是否重复发送、是否发送失败或是否恢复执行等情况。通过执行环境的确定可以防止任务发送失败、无法重新发送或者无法恢复执行等情况。
69.在操作s240,若第一执行条件满足第一预设要求,将备份恢复任务发送至目标代理服务,其中,目标代理服务被配置为执行备份恢复任务。
70.示例性地,第一预设要求包括任务可以成功执行的条件要求。
71.示例性地,目标代理服务被配置为先检查备份恢复任务的第二执行条件,若第二执行条件满足第二预设要求,则执行备份恢复任务。
72.根据本公开的实施例,将数据库管理平台中的备份恢复功能拆分到独立的管理服务中管理,降低了数据库管理平台的处理压力,还降低了可能由备份恢复功能异常导致整个数据库管理平台不能使用的风险,也可以缓解短时间提交大量备份恢复任务时造成数据库管理平台的拥堵。另外,拆分备份恢复功能独立管理,检查第一执行条件是否满足第一预设要求,可以更加精准的管理备份恢复任务,避免执行异常。
73.图3示意性示出了根据本公开实施例的检查关联关系的流程图。
74.如图3所示,操作s230中检查目标代理服务执行备份恢复任务的第一执行条件包括检查关联关系,具体包括操作s310~操作s320。
75.在操作s310,获取目标代理服务的m个未完成任务,m为大于或等于1的整数。
76.示例性地,未完成任务包括历史上(在发送备份恢复任务之前)发送给目标代理服
务,而目标代理服务正在执行中、未执行或等待重复执行的任务。m个未完成任务可以通过心跳连接与目标代理服务数据交互获得。
77.在操作s320,对比备份恢复任务与m个未完成任务中任一个未完成任务之间的任务信息,获得对比结果,其中,任务信息包括任务发起时间、任务执行时间、任务标识、任务类型或目标数据中的至少一种信息。
78.示例性地,任务发起时间包括在数据库管理平台服务112发送的时间,任务执行时间可以是目标代理服务返回的预计执行时间,任务标识包括任务id,任务类型包括备份任务(如全量备份类或增量备份类)或恢复任务,目标数据包括数据节点、数据库或数据库表等信息。
79.根据本公开的实施例,通过任务信息的对比结果可以发现当前任务与历史任务之间的关联关系,避免由于任务之间的冲突导致执行异常。
80.根据本公开的实施例,在获得对比结果之后,在备份恢复任务与任一个未完成任务之间的任务发起时间间隔小于第一阈值,且任务类型相同的情况下:若备份恢复任务与该未完成任务之间的部分其他任务信息相同,确定关联关系为重复关系。在关联关系为重复关系的情况下,第一执行条件不满足第一预设要求。
81.示例性地,具有重复关系可以认定为重复提交的任务。管理服务判断当前管理任务中,是否存在相同数据节点与备份管理任务相同的未完成的任务,如果存在相同的节点未完成任务,并且是同类型任务,则判断为重复提交,并向数据库管理平台服务返回重复提交任务的错误结果。
82.示例性地,由于用户连续点击、数据库管理平台服务异常或数据库管理平台服务与管理服务之间的网络连接出现问题,可能导致任务重复发送,因此,在预定时间段内如果存在类型相同的两个任务,并且任务标识、任务类型或目标数据中至少部分相同,则可以认为不符合第一预设要求,放弃当前任务。第一阈值可以根据实际情况选择,本公开不进行限定。例如,1分钟内具有两个针对数据节点1中的数据库1(db1)的备份任务,若重复执行则可能导致资源的浪费,所以放弃执行重复任务。
83.根据本公开的实施例,在获得对比结果之后,在备份恢复任务与任一个未完成任务之间的目标数据相同,且任务类型不同的情况下:若备份恢复任务与该未完成任务之间的执行时间间隔小于第二阈值,确定关联关系为互斥关系。在关联关系为互斥关系的情况下,第一执行条件不满足第一预设要求。
84.示例性地,目标数据同一时刻或时间段内只能被一个进程或线程使用,避免多线程同时对目标数据处理造成数据丢失或错误。进程或线程用于执行备份恢复任务。第二阈值可以根据实际情况选择,本公开不进行限定。
85.若两个任务目标数据相同,且任务类型不同,例如备份任务正在执行中,恢复任务对同样的目标数据执行恢复操作。在大数据量的情况下,若备份未完成,易发生数据丢失等情况。因此,对具有互斥关系的互斥任务进行确定,可以避免数据出现问题。
86.图4示意性示出了根据本公开实施例的处理互斥任务的流程图。
87.在关联关系为互斥关系的情况下,如图4所示,该实施例的处理互斥任务包括操作s410~操作s420。
88.在操作s410,确认是否等待执行。
89.在操作s420,若确认等待执行,将备份恢复任务放入任务管理队列等待执行。
90.示例性地,如果是互斥任务(两个任务之间具有互斥关系),则判断是否可以等待执行,如果不能则及时返回结果给数据库管理平台服务112。如果可以等待执行,则可将该任务放入到任务管理队列中,并定时监测与其互斥任务的执行状态,在执行完成后再执行该任务。
91.图5示意性示出了根据本公开实施例的检查执行环境的流程图。
92.如图5所示,操作s230中检查目标代理服务执行备份恢复任务的第一执行条件包括检查执行环境包括操作s510~操作s520。
93.在操作s510,向目标代理服务发送执行环境查询请求。
94.在操作s520,接收目标代理服务响应于执行环境查询请求返回的查询结果,其中,查询结果包括目标代理服务的执行准备状态,或目标代理服务所在数据库节点的存储空间状态。
95.示例性地,执行准备状态可以反映目标代理服务是否正常运行,以及是否可以执行备份恢复任务等。存储空间状态可以反映目标数据库是否还有足够大小的存储空间执行备份恢复任务。若无法执行环境查询请求不成功或没有接收到查询结果,可能表明目标代理服务宕机了,该情况下说明不具备执行环境,无法执行。
96.根据本公开的实施例,通过执行环境的检查,可以确保目标代理服务或数据库具有执行备份恢复任务的条件,避免发送任务不成功,或发送后任务执行失败的情况。
97.图6示意性示出了根据本公开实施例的发送备份恢复任务的流程图。
98.若第一执行条件满足第一预设要求,将备份恢复任务放入任务管理队列,如图6所示,操作s240中将备份恢复任务发送至目标代理服务包括操作s610~操作s630。
99.在操作s610,从任务管理队列取出备份恢复任务。
100.任务管理队列的作用在于可以避免短时间提交大量备份恢复任务时造成的管理服务崩溃。若第一执行条件满足第一预设要求,则可以先将放入(存储)任务管理队列进行异步处理,逐个处理队列中的待执行任务。
101.在操作s620,查询目标代理服务的运行状态。
102.在操作s630,若运行状态为正常,将备份恢复任务发送至目标代理服务。在一些实施例中,若运行状态为非正常,将备份恢复任务重新放入任务管理队列等待执行。
103.示例性地,管理服务逐个将未完成的任务从任务管理队列取出。例如取出上述备份恢复任务,可以查询对应的目标代理服务,如果目标代理服务正常运行中,则将任务通过grpc远程调用方式发送。如果目标代理服务不是正常状态,则将任务继续放回到任务管理队列中。
104.根据本公开的实施例,首先在检查执行环境时与目标代理服务进行第一次交互,确定目标代理服务的执行环境,并可以令目标代理服务为该次交互的任务预留执行资源。然后在从任务管理队列中取出任务发送之前,与目标代理服务进行第二次交互,确定目标代理服务可以正常运行。通过两阶段提交的方式实现任务的发送,提高任务执行成功的概率。
105.图7示意性示出了根据本公开实施例的加权执行任务的流程图。
106.如图7所示,该实施例的加权执行任务包括操作s710~操作s720。
107.在操作s710,根据任务管理队列中每个待执行任务的执行次数,分配对应的执行权重。
108.示例性地,任务管理队列中包括一个或多个待执行任务,上述备份恢复任务属于任务管理队列中的其中一个待执行任务。该一个或多个待执行任务为一个或多个数据节点对应的任务。.
109.例如每取出一次则进行计数令执行次数加1,若未执行成功放入任务管理队列继续等待执行,则可以获得每个任务的执行次数。
110.在操作s720,根据每个待执行任务的执行权重,确定取出顺序。
111.示例性地,一个或多个待执行任中包括因存在互斥任务、目标代理服务非正常运行等情况放入的等待执行的任务,也包括实时从数据库管理平台服务接收的第一执行条件满足第一预设要求的任务。因此,可以根据执行权重大小来确定取出某个任务的顺序。
112.例如在偏重实时性的情况下,将还未执行过的任务赋予较大的权重,并先取出较大权重的任务。例如在偏重处理积压任务的情况下,执行次数越多赋予越大的权重,并先取出较大权重的任务。
113.根据本公开的实施例,通过执行权重确定取出顺序,实现了各个待执行任务的差异化执行,有利于对任务的灵活管理。
114.图8示意性示出了根据本公开实施例的用于代理服务的任务管理方法的流程图。
115.如图8所示,该实施例的任务管理方法用于目标代理服务,目标代理服务为n个代理服务中的任一个,n为大于或等于1的整数,该方法包括操作s810~操作s830。
116.在操作s810,接收管理服务发送的备份恢复任务,其中,管理服务被配置为在检查目标代理服务执行备份恢复任务的第一执行条件满足第一预设要求的情况下,发送备份恢复任务。
117.示例性地,管理服务可以执行图2~图8描述的一个或多个实施例的方法来将备份恢复任务发送至目标代理服务。
118.在操作s820,检查执行备份恢复任务的第二执行条件,其中,第二执行条件包括备份恢复任务与目标代理服务的未完成任务之间的关联关系。
119.示例性地,关联关系可以包括重复关系和互斥关系,即判断备份恢复任务是否存在重复任务或互斥任务,并在存在重复任务或互斥任务的情况下可以执行与管理服务相同或类似的操作,如舍弃重复任务,或判断互斥任务能否等待执行。
120.示例性地,目标代理服务同样维护一个任务管理队列,该队列中的一个或多个待执行任务针对同一个数据节点的数据库。目标代理服务将接收到的备份恢复服务与任务管理队列中的任一待执行任务进行任务信息的比较,来确定关联关系。
121.在操作s830,若第二执行条件满足第二预设要求,执行备份恢复任务。
122.示例性地,第二预设要求包括目标代理服务可以成功执行备份恢复任务的条件要求。
123.参照图1,目标代理服务接收到管理服务120发送过来的备份恢复任务(task),先对备份恢复任务(task)进行检查,检查是否在任务队列中是否存在相同的任务,如果存在,则删除新接收到的备份恢复任务(task),并返回结果给管理服务120,如果不存在,则将备份恢复任务(task)放入到任务管理队列中,目标代理服务依次取出备份恢复任务(task)来
执行。
124.目标代理服务执行完成备份恢复任务后,将执行结果返回给管理服务120,管理服务120接收到结果后,对任务队列中相应的任务进行结果登记处理,并把结果发送回数据库管理平台服务112,由数据库管理平台服务112经数据库管理平台客户端111展示给用户。
125.在将任务管理功能从数据库管理平台拆分出来的基础上,由管理服务对接n个代理服务的运行过程中,由于分布式数据库集群数量庞大,任务数量也较大,管理服务与代理服务之间可能出现数据不一致、连接问题或人为事故等情况,导致在代理服务端也易出现任务重复发送、任务接收失败、接收失败也未重新接收到,或者任务遭遇外部原因中止而无法恢复执行等情况。
126.例如,在管理服务向目标代理服务下发备份恢复任务的过程中,目标代理服务突然挂掉(程序运行原因或人为停止)。一种情况下,目标代理服务已经接收到备份恢复任务,管理服务没有收到返回结果,则管理服务会重复发送。另一种情况下,目标代理服务已经接收到备份恢复任务,但是还没有及时存入任务管理队列,已经向管理服务返回结果,管理服务不会再次发送,目标代理服务丢失了该任务。该情况下,管理服务可以通过心跳连接获取目标代理服务的待完成任务,并与派发历史进行校对。再一种情况下,若管理服务故障重启后,进行状态自检,可能会状态混乱,无法对备份恢复任务的第一执行条件进行有效检查,目标代理服务的检查过程可以进行有效补充。同样,若目标代理服务状态混乱,也可以通过管理服务的检查作为补充。
127.根据本公开的实施例,接收管理服务发送的第一执行条件满足第一预设要求的备份管理任务,并在目标代理服务端检查备份管理任务的第二执行条件是否满足第二预设要求,若满足第二预设要求,则执行备份恢复任务。通过二段式管理所有备份恢复任务的方式,例如对重复提交的相同或者互斥任务进行抛弃或者过滤。可以保障数据库的备份恢复任务有序顺利进行,避免任务执行异常的情况发生。
128.基于上述用于管理服务和用于代理服务的任务管理方法,本公开还分别提供了用于管理服务和用于代理服务的任务管理装置。以下将结合图9和图10分别对装置进行详细描述。
129.图9示意性示出了根据本公开实施例的用于管理服务的任务管理装置的结构框图。
130.如图9所示,该实施例的任务管理装置900包括第一接收模块910、代理确定模块920、第一检查模块930和任务发送模块940。
131.第一接收模块910可以执行操作s210,用于接收数据库管理平台发送的备份恢复任务,数据库管理平台与管理服务互相独立运行,管理服务用于管理n个代理服务,n为大于或等于1的整数。
132.代理确定模块920可以执行操作s220,用于从n个代理服务中确定执行备份恢复任务的目标代理服务。
133.第一检查模块930可以执行操作s230,用于检查目标代理服务执行备份恢复任务的第一执行条件,其中,第一执行条件包括备份恢复任务与目标代理服务的未完成任务之间的关联关系,或目标代理服务的执行环境。
134.任务发送模块940可以执行操作s240,用于若第一执行条件满足第一预设要求,将
备份恢复任务发送至目标代理服务,其中,目标代理服务被配置为执行备份恢复任务。
135.根据本公开的实施例,任务管理装置900包括分别用于执行如上描述用于管理服务的任务管理方法的各个步骤的模块。
136.图10示意性示出了根据本公开实施例的用于代理服务的任务管理装置的结构框图。
137.如图10所示,该实施例的任务管理装置1000包括第二接收模块1010、第二检查模块1020和任务执行模块1030。
138.第二接收模块1010可以执行操作s810,用于接收管理服务发送的备份恢复任务,其中,管理服务被配置为在检查目标代理服务执行备份恢复任务的第一执行条件满足第一预设要求的情况下,发送备份恢复任务。
139.第二检查模块1020可以执行操作s820,用于检查执行备份恢复任务的第二执行条件,其中,第二执行条件包括备份恢复任务与目标代理服务的未完成任务之间的关联关系。
140.任务执行模块1030可以执行操作s830,用于若第二执行条件满足第二预设要求,执行备份恢复任务。
141.根据本公开的实施例,任务管理装置1000包括分别用于执行如上描述用于目标代理服务的任务管理方法的各个步骤的模块。
142.需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
143.根据本公开的实施例,任务管理装置900或任务管理装置1000中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
144.根据本公开的实施例,任务管理装置900或任务管理装置1000中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,任务管理装置900或任务管理装置1000中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
145.图11示意性示出了根据本公开实施例的适于实现任务管理方法的电子设备的方框图。
146.如图11所示,根据本公开实施例的电子设备1100包括处理器1101,其可以根据存储在只读存储器(rom)1102中的程序或者从存储部分1108加载到随机访问存储器(ram)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
147.在ram 1103中,存储有电子设备1100操作所需的各种程序和数据。处理器1101、
rom 1102以及ram 1103通过总线1104彼此相连。处理器1101通过执行rom 1102和/或ram 1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除rom 1102和ram 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
148.根据本公开的实施例,电子设备1100还可以包括输入/输出(i/o)接口1105,输入/输出(i/o)接口1105也连接至总线1104。电子设备1100还可以包括连接至i/o接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106。包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1107。包括硬盘等的存储部分1108。以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
149.本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的。也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
150.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 1102和/或ram 1103和/或rom 1102和ram 1103以外的一个或多个存储器。
151.本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
152.在该计算机程序被处理器1101执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
153.在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1109被下载和安装,和/或从可拆卸介质1111被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
154.在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
155.根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执
行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
156.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
157.本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
158.以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献