CN112000682A - 数据同步任务调度方法、装置、服务器及存储介质 - Google Patents
数据同步任务调度方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN112000682A CN112000682A CN202010861983.3A CN202010861983A CN112000682A CN 112000682 A CN112000682 A CN 112000682A CN 202010861983 A CN202010861983 A CN 202010861983A CN 112000682 A CN112000682 A CN 112000682A
- Authority
- CN
- China
- Prior art keywords
- task
- added
- record
- target
- synchronized
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种数据同步任务调度方法,该方法包括:获取待添加任务;所述待添加任务包括至少一条待同步记录;在同步任务队列的已添加任务中,确定所述待添加任务对应的目标任务;所述目标任务中包含有与所述待添加任务的待同步记录相重复的记录;记录所述待添加任务与所述目标任务之间的依赖关系;将所述待添加任务连同所述依赖关系添加至所述同步任务队列中;所述同步任务队列用于在数据同步过程中对多个所述已添加任务进行任务调度。本公开能够减少增量数据同步过程的延迟。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据同步任务调度方法、装置、电子设备及存储介质。
背景技术
随着大数据处理在各行各业的广泛使用,业务对海量数据进行实时处理的需求越来越大,对数据处理在延迟性、吞吐量方面的要求越来越高。
现有技术在对进行增量数据同步的过程中时,往往只是采用简单的并行处理,然而不同数据版本之间往往存在复杂地依赖关系,这使得在主库写入量较大的情况下,增量数据同步过程容易产生同步延迟过大的问题。
发明内容
本公开提供一种数据同步任务调度方法、装置、服务器及存储介质,以至少解决相关技术中增量数据同步过程容易产生同步延迟过大的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据同步任务调度方法,包括:
获取待添加任务;所述待添加任务包括至少一条待同步记录;
在同步任务队列的已添加任务中,确定所述待添加任务对应的目标任务;所述目标任务中包含有与所述待添加任务的待同步记录相重复的记录;
记录所述待添加任务与所述目标任务之间的依赖关系;
将所述待添加任务连同所述依赖关系添加至所述同步任务队列中;所述同步任务队列用于在数据同步过程中对多个所述已添加任务进行任务调度。
在一种可能实现方式中,所述在所述同步任务队列的已添加任务中,确定所述待添加任务的目标任务,包括:
根据所述待添加任务对应的待同步记录,遍历各个所述已添加任务对应的待同步记录,得到目标记录;其中,所述目标记录为与所述待添加任务对应的待同步记录相重复的记录;
将所述目标记录对应的已添加任务,作为所述待添加任务的目标任务。
在一种可能实现方式中,所述记录所述待添加任务与所述目标任务之间的依赖关系,包括:
将所述目标任务添加至所述待添加任务对应的依赖任务列表;所述依赖任务列表用于记录优先级高于所述待添加任务的优先级的任务;
和/或,
将所述待添加任务添加至所述目标任务对应的被依赖任务列表;所述被依赖任务列表用于记录优先级低于所述目标任务的优先级的任务。
在一种可能实现方式中,所述将所述待添加任务连同所述依赖关系添加至所述同步任务队列中的步骤之后,还包括:
当接收到任务执行请求后,确定所述同步任务队列中各个所述已添加任务的优先级;
按照各个所述已添加任务的优先级,依次执行各个所述已添加任务;
修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系。
在一种可能实现方式中,所述修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系,包括:
当完成执行所述目标任务后,在所述待添加任务对应的依赖任务列表中移除所述目标任务。
在一种可能实现方式中,所述修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系,包括:
当完成执行所述目标任务后,将所述目标任务对应的被依赖任务列表设置为空列表。
在一种可能实现方式中,在所述获取待添加任务的步骤之后,还包括:
获取针对所述同步任务队列的待同步记录速查表;所述待同步记录速查表为所述同步任务队列中所有的所述已添加任务对应的待同步记录;
当确定所述待同步记录列表中不存在与所述待添加任务对应的待同步记录一致的记录时,则设置所述待添加任务的优先级高于所述已添加任务的优先级。
根据本公开实施例的第二方面,提供一种数据同步任务调度装置,其特征在于,包括:
获取单元,被配置为执行获取待添加任务;所述待添加任务包括至少一条待同步记录;
查询单元,被配置为执行在同步任务队列的已添加任务中,确定所述待添加任务对应的目标任务;所述目标任务中包含有与所述待添加任务的待同步记录相重复的记录;
记录单元,被配置为执行记录所述待添加任务与所述目标任务之间的依赖关系;
添加单元,被配置为执行将所述待添加任务连同所述依赖关系添加至所述同步任务队列中;所述同步任务队列用于在数据同步过程中对多个所述已添加任务进行任务调度。
在一种可能实现方式中,所述查询单元,具体被配置为执行根据所述待添加任务对应的待同步记录,遍历各个所述已添加任务对应的待同步记录,得到目标记录;其中,所述目标记录为与所述待添加任务对应的待同步记录相重复的记录;将所述目标记录对应的已添加任务,作为所述待添加任务的目标任务。
在一种可能实现方式中,所述记录单元,具体被配置为执行将所述目标任务添加至所述待添加任务对应的依赖任务列表;所述依赖任务列表用于记录优先级高于所述待添加任务的优先级的任务;和/或,将所述待添加任务添加至所述目标任务对应的被依赖任务列表;所述被依赖任务列表用于记录优先级低于所述目标任务的优先级的任务。
在一种可能实现方式中,所述一种数据同步任务调度装置,还包括:接收单元,被配置为执行当接收到任务执行请求后,确定所述同步任务队列中各个所述已添加任务的优先级;执行单元,被配置为执行按照各个所述已添加任务的优先级,依次执行各个所述已添加任务;修改单元,被配置为执行修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系。
在一种可能实现方式中,所述修改单元,具体被配置为执行当完成执行所述目标任务后,在所述待添加任务对应的依赖任务列表中移除所述目标任务。
在一种可能实现方式中,所述修改单元,具体被配置为执行当完成执行所述目标任务后,将所述目标任务对应的被依赖任务列表设置为空列表。
在一种可能实现方式中,所述一种数据同步任务调度装置,还包括:速查单元,被配置为执行获取针对所述同步任务队列的待同步记录速查表;所述待同步记录速查表为所述同步任务队列中所有的所述已添加任务对应的待同步记录;设置单元,被配置为执行当确定所述待同步记录列表中不存在与所述待添加任务对应的待同步记录一致的记录时,则设置所述待添加任务的优先级高于所述已添加任务的优先级。
根据本公开实施例的第三方面,提供一种服务器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任一种可能实现方式所述的数据同步任务调度方法。
根据本公开实施例的第四方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任一种可能实现方式所述的数据同步任务调度方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的数据同步任务调度方法。
本公开的实施例提供的技术方案至少带来以下有益效果:通过获取包括至少一条待同步记录的待添加任务;待添加任务包括至少一条待同步记录;然后在同步任务队列的已添加任务中,确定包含有与待添加任务的待同步记录相重复的记录的目标任务;并记录待添加任务与目标任务之间的依赖关系;并将待添加任务连同依赖关系添加至同步任务队列中;以在数据同步过程中对多个已添加任务进行任务调度,如此,可以基于同步任务队列中各个已添加任务之间的依赖关系或执行优先级,按照一定顺序并行地对各个已添加任务中的待同步记录进行数据同步处理,避免对同一条待同步记录进行重复地数据同步操作,从而有效地减少了在主库写入量较大的情况下增量数据同步过程的延迟。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据同步任务调度方法的应用环境图。
图2是根据一示例性实施例示出的一种数据同步任务调度方法的流程图。
图3是根据一示例性实施例示出的一种依赖关系示意图。
图4是根据一示例性实施例示出的另一种数据同步任务调度方法的流程图。
图5是根据一示例性实施例示出的一种数据同步任务调度装置的框图。
图6是根据一示例性实施例示出的一种服务器的内部结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所提供的一种数据同步任务调度方法,可以应用于如图1所示的应用环境中。其中,服务器110获取待添加任务;待添加任务包括至少一条待同步记录。然后,服务器110在同步任务队列的已添加任务中,确定待添加任务对应的目标任务;目标任务中包含有与所述待添加任务的待同步记录相重复的记录;再然后,服务器110记录待添加任务与目标任务之间的依赖关系;最后,服务器110将待添加任务连同依赖关系添加至同步任务队列中;同步任务队列用于在数据同步过程中对多个已添加任务进行任务调度。实际应用中,服务器110可以是服务器集群120中的任意一个服务器。
图2是根据一示例性实施例示出的一种数据同步任务调度方法的流程图,如图2所示,数据同步任务调度方法用于图1中的服务器110,包括以下步骤。
在步骤S210中,获取待添加任务。其中,待添加任务包括至少一条待同步记录。
其中,待添加任务可以是指需要添加至指定的任务队列中的任务。
其中,待同步记录可以是指需要进行数据同步处理的数据记录。
当然,待添加任务也可以命名为待添加事务。每个待添加事务包含一条或者多条数据行记录(待同步记录)。实际应用中,可以将数据行记录封装为record,事务封装为packet数据包,一个packet数据包包含有一条或者多条record。其中,第i个添加的待添加packet可以表示为packet_i:[1,2,3,4,5,…n];其中,n为第n条待同步记录(record)。
具体实现中,服务器获取待添加至同步任务队列中的待添加任务。
在步骤S220中,在同步任务队列的已添加任务中,确定待添加任务对应的目标任务。
其中,同步任务队列为包括有至少一个已添加任务的任务队列。
其中,目标任务中包含有与待添加任务的待同步记录相重复的记录。换句话说,目标任务的待同步记录中包括有与待添加任务的待同步记录一致的记录。
具体实现中,当服务器获取到待添加任务后,服务器则在同步任务队列的已添加任务中,确定待添加任务对应的目标任务。其中,该目标任务包含有与待添加任务的待同步记录相重复的记录。
具体来说,当服务器获取到待添加任务后,服务器可以检查各个待添加任务中的各条待同步记录是否在同步任务队列的已添加任务中存在,若存在则将存在的待同步记录对应的已添加任务确定为包含有与待添加任务的待同步记录相重复的记录的目标任务。
在步骤S230中,记录待添加任务与目标任务之间的依赖关系。
具体实现中,当服务器在同步任务队列中确定与待添加任务对应的目标任务后,服务器则记录待添加任务与目标任务之间的依赖关系。具体来说,服务器可以设置目标任务的执行优先级高于待添加任务的执行优先级,也可以设置待添加任务的执行优先级低于目标任务的执行优先级。
需要说明的是,若服务器确定待添加任务中的各条待同步记录没有在同步任务队列的已添加任务中存在时,服务器则确定该待添加任务与同步任务队列中的已添加任务的依赖关系为空,即可以不用设置待添加任务的依赖关系。
在步骤S240中,将待添加任务连同依赖关系添加至同步任务队列中。
其中,同步任务队列用于在数据同步过程中对多个已添加任务进行任务调度。
具体实现中,当服务器记录完待添加任务与目标任务之间的依赖关系后,服务器则将待添加任务连同依赖关系添加至同步任务队列中,得到更新后的同步任务队列。如此,在服务器接收到同步任务执行指令后,服务器可以按照更新后的同步任务队列,依照各个更新后的同步任务队列中各个已添加任务之间的依赖关系或执行优先级,并行处理各个已添加任务对各个已添加任务中的待同步记录进行数据同步。
上述数据同步任务调度方法中,通过获取包括至少一条待同步记录的待添加任务;待添加任务包括至少一条待同步记录;然后在同步任务队列的已添加任务中,确定包括有与待添加任务的待同步记录一致的记录的目标任务;并记录待添加任务与目标任务之间的依赖关系;并将待添加任务连同依赖关系添加至同步任务队列中;以在数据同步过程中对多个已添加任务进行任务调度,如此,可以基于同步任务队列中各个已添加任务之间的依赖关系或执行优先级,按照一定顺序并行地对各个已添加任务中的待同步记录进行数据同步处理,避免对同一条待同步记录进行重复地数据同步操作,从而有效地减少了在主库写入量较大的情况下增量数据同步过程的延迟。
在一示例性实施例中,在同步任务队列的已添加任务中,确定待添加任务的目标任务,包括:根据待添加任务对应的待同步记录,遍历各个已添加任务对应的待同步记录,得到目标记录;将目标记录对应的已添加任务,作为待添加任务的目标任务。
其中,目标记录为与待添加任务对应的待同步记录相重复的记录。
具体实现中,服务器在同步任务队列的已添加任务中,确定待添加任务的目标任务的过程中,具体包括:服务器可以根据待添加任务对应的待同步记录,遍历各个已添加任务对应的待同步记录,得到与待添加任务对应的待同步记录一致的目标记录;然后,服务器再将该目标记录对应的已添加任务,作为待添加任务的目标任务。具体来说,当有新的待添加packet添加进来时,服务器则将该待添加packet的状态设置为ready;然后,服务器检测待添加packet中的每条待同步记录(record)是否在同步任务队列中已添加packet中存在。若查询待同步记录(record)在同步任务队列中已添加packet中存在,即在已添加packet对应的待同步记录中找到与待添加任务对应的待同步记录相重复的记录的目标记录。然后,服务器将该目标记录所在的已添加packet作为该待添加packet的目标packet。
本实施例的技术方案,通过根据待添加任务对应的待同步记录,遍历各个已添加任务对应的待同步记录,得到目标记录;并将目标记录对应的已添加任务,作为待添加任务的目标任务,从而可以准确地在同步任务队列的已添加任务中确定与待添加任务存在依赖关系的目标任务。
在一示例性实施例中,记录待添加任务与目标任务之间的依赖关系,包括:将目标任务添加至待添加任务对应的依赖任务列表;依赖任务列表用于记录优先级高于待添加任务的优先级的任务;和/或,将待添加任务添加至目标任务对应的被依赖任务列表;被依赖任务列表用于记录优先级低于目标任务的优先级的任务。
其中,依赖任务列表用于记录优先级高于待添加任务的优先级的任务。实际应用中,依赖任务列表也可以命名为in_node列表。换句话说,在执行待添加任务之前,需要等in_node列表中的所有任务执行完毕后再执行待添加任务。
其中,被依赖任务列表用于记录优先级低于目标任务的优先级的任务。实际应用中,被依赖任务列表也可以命名为out_node列表。换句话说,需要在目标任务执行完毕后,再执行out_node列表中的所有任务。
具体实现中,在记录待添加任务与目标任务之间的依赖关系的过程中,服务器具体可以将目标任务添加至待添加任务对应的依赖任务列表,以设置目标任务的优先级高于待添加任务的优先级。当然,在记录待添加任务与目标任务之间的依赖关系的过程中,服务器具体还可以将待添加任务添加至目标任务对应的被依赖任务列表,以待添加任务的优先级低于目标任务的优先级。
例如,假设某一段change data的变更记录可以表示为packet_1:[1,2,3,4,5]、packet_2:[1,3,5,7]、packet_3:[2,4,6,8]、packet_4:[1,3]、packet_5:[4,5,6,7]、packet_6:[8,10]、packet_7:[3]、packet_8:[4,10]packet_10:[100,10]、packet_20:[200,201];服务器按照上述的数据同步任务调度方法依次将各个待添加packet添加至同步任务队列,得到各个packet的之间的依赖关系。图3实例性地提供了一种用于表征各个packet的之间的依赖关系示意图,可以看出各个packet之间的依赖关系形成了在逻辑上的有向无环图。
本实施例的技术方案,在记录待添加任务与目标任务之间的依赖关系的过程中,通过将目标任务添加至待添加任务对应的依赖任务列表;和/或,将待添加任务添加至目标任务对应的被依赖任务列表,如此可以准确地设置好待添加任务与同步任务队列的各个已添加任务之间的依赖关系。
在一示例性实施例中,将待添加任务连同依赖关系添加至同步任务队列中的步骤之后,还包括:当接收到任务执行请求后,确定同步任务队列中各个已添加任务的优先级;按照各个已添加任务的优先级,依次执行各个已添加任务;修改已执行的已添加任务与未执行的已添加任务之间的依赖关系。
具体实现中,在服务器将待添加任务连同依赖关系添加至同步任务队列中的步骤之后,当服务器接收到任务执行请求后,服务器则确定同步任务队列中各个已添加任务的优先级;按照各个已添加任务的优先级,依次执行各个已添加任务;并修改已执行的已添加任务与未执行的已添加任务之间的依赖关系。
具体来说,服务器可以维护N个worker(任务处理器)并行处理同步任务队列中的各个已添加任务;其中,N可以是指数据同步处理过程中的并发度。当worker队列中有空闲worker时,服务器则通过空闲worker在同步任务队列中挑选没有in_node列表依赖的已添加任务,并将该已添加任务的状态标识为running并开始执行。同时,在服务器执行完已添加任务后,服务器则修改已执行的已添加任务与未执行的已添加任务之间的依赖关系。更具体地,服务器可以通过修改已执行的已添加任务的in_node列表和out_node列表中的任务,进而修改已执行的已添加任务与未执行的已添加任务之间的依赖关系。
在一示例性实施例中,修改已执行的已添加任务与未执行的已添加任务之间的依赖关系,包括:当完成执行目标任务后,在待添加任务对应的依赖任务列表中移除目标任务。
具体实现中,服务器在修改已执行的已添加任务与未执行的已添加任务之间的依赖关系的过程中,具体包括:当服务器确定完成执行目标任务后,服务器则可以将该目标任务的状态标识为finish;同时,服务器在待添加任务对应的依赖任务列表中移除目标任务,同时执行待添加任务,并在执行完待添加任务后,执行待添加任务对应的out_node列表中的任务。
在一示例性实施例中,修改已执行的已添加任务与未执行的已添加任务之间的依赖关系,包括:当完成执行目标任务后,将目标任务对应的被依赖任务列表设置为空列表。
具体实现中,服务器在修改已执行的已添加任务与未执行的已添加任务之间的依赖关系的过程中,具体还包括:当服务器确定完成执行目标任务后,服务器则可以将该目标任务的状态标识为finish;同时,服务器将目标任务对应的被依赖任务列表设置为空列表即将目标任务对应的out_node列表设置为空,并从同步任务队列(packet列表)中删除当前的目标任务。
本实施例的技术方案,当接收到任务执行请求后,确定同步任务队列中各个已添加任务的优先级;按照各个已添加任务的优先级,依次执行各个已添加任务;并当完成执行目标任务后,在待添加任务对应的依赖任务列表中移除目标任务,并将目标任务对应的被依赖任务列表设置为空列表;从而可以实现在完成执行完同步任务队列中各个已添加任务后,准确地调整已执行的已添加任务与未执行的已添加任务之间的依赖关系。
在一示例性实施例中,在获取待添加任务的步骤之后,还包括:获取针对同步任务队列的待同步记录速查表;待同步记录速查表为同步任务队列中所有的已添加任务对应的待同步记录;当确定待同步记录列表中不存在与待添加任务对应的待同步记录一致的记录时,则设置待添加任务的优先级高于已添加任务的优先级。
其中,待同步记录速查表为同步任务队列中所有的已添加任务对应的待同步记录。
具体实现中,在服务器获取到待添加任务后,并根据该待添加任务中的待同步记录查询是否有包含它的packet存在时,在遍历所有已添加任务的所有待同步记录的过程中往往是非常耗时的,因此,服务器在获取到待添加任务之后,服务器还可以获取针对同步任务队列的待同步记录速查表。并在将待添加任务添加至同步任务队列之前,服务器在待同步记录速查表中查询是否存在与待添加任务对应的待同步记录一致的记录。当待同步记录速查表中不存在与待添加任务对应的待同步记录一致的记录时,服务器则确定该待添加任务与同步任务队列中的已添加任务的依赖关系为空,即可以不用设置待添加任务的依赖关系,设置待添加任务的优先级高于已添加任务的优先级。即在执行同步任务队列中服务器可以优先处理待添加任务。
当存在与待添加任务对应的待同步记录一致的记录,则设置待添加任务的优先级低于已添加任务的优先级。即需要等待同步记录速查表对应的已添加任务全部执行完后,在执行待添加任务。
另外,在完成将待添加任务添加至同步任务队列之后,服务器将待添加任务对应的待同步记录也添加到待同步记录速查表中。在完成执行待添加任务之后,服务器则清除待同步记录速查表中的待添加任务对应的待同步记录。
本实施例的技术方案,在获取到待添加任务之后,通过获取针对同步任务队列的待同步记录速查表;待同步记录速查表为同步任务队列中所有的已添加任务对应的待同步记录;当确定待同步记录列表中不存在与待添加任务对应的待同步记录一致的记录时,则设置待添加任务的优先级高于已添加任务的优先级,从而可以避免因遍历所有已添加任务的所有待同步记录而造成耗时的情况发生。
图4是根据一示例性实施例示出的一种数据同步任务调度方法的流程图,如图4所示,该数据同步任务调度方法用于图1的服务器110中,包括以下步骤。在步骤S410中,获取待添加任务;所述待添加任务包括至少一条待同步记录。在步骤S420中,根据所述待添加任务对应的待同步记录,在同步任务队列的已添加任务中,遍历各个所述已添加任务对应的待同步记录,得到目标记录;其中,所述目标记录与所述待添加任务对应的待同步记录一致。在步骤S430中,将所述目标记录对应的已添加任务,作为所述待添加任务的目标任务。在步骤S440中,记录所述待添加任务与所述目标任务之间的依赖关系。在步骤S450中,将所述待添加任务连同所述依赖关系添加至所述同步任务队列中。所述同步任务队列用于在数据同步过程中对多个所述已添加任务进行任务调度。在步骤S460中,当接收到任务执行请求后,确定所述同步任务队列中各个所述已添加任务的优先级。在步骤S470中,按照各个所述已添加任务的优先级,依次执行各个所述已添加任务。在步骤S480中,修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系。上述步骤的具体限定可以参见上文对一种数据同步任务调度方法的具体限定,在此不再赘述。
应该理解的是,虽然图2和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图5是根据一示例性实施例示出的一种数据同步任务调度装置框图。参照图5,该装置包括获取单元510,查询单元520,记录单元530和添加单元540。
该获取单元510,被配置为执行获取待添加任务;所述待添加任务包括至少一条待同步记录;
该查询单元520,被配置为执行在同步任务队列的已添加任务中,确定所述待添加任务对应的目标任务;所述目标任务中包含有与所述待添加任务的待同步记录相重复的记录;
该记录单元530,被配置为执行记录所述待添加任务与所述目标任务之间的依赖关系;
该添加单元540,被配置为执行将所述待添加任务连同所述依赖关系添加至所述同步任务队列中;所述同步任务队列用于在数据同步过程中对多个所述已添加任务进行任务调度。
在其中一个实施例中,所述查询单元520,具体被配置为执行根据所述待添加任务对应的待同步记录,遍历各个所述已添加任务对应的待同步记录,得到目标记录;其中,所述目标记录为与所述待添加任务对应的待同步记录相重复的记录;将所述目标记录对应的已添加任务,作为所述待添加任务的目标任务。
在其中一个实施例中,所述记录单元530,具体被配置为执行将所述目标任务添加至所述待添加任务对应的依赖任务列表;所述依赖任务列表用于记录优先级高于所述待添加任务的优先级的任务;和/或,将所述待添加任务添加至所述目标任务对应的被依赖任务列表;所述被依赖任务列表用于记录优先级低于所述目标任务的优先级的任务。
在其中一个实施例中,所述一种数据同步任务调度装置,还包括:接收单元,被配置为执行当接收到任务执行请求后,确定所述同步任务队列中各个所述已添加任务的优先级;执行单元,被配置为执行按照各个所述已添加任务的优先级,依次执行各个所述已添加任务;修改单元,被配置为执行修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系。
在其中一个实施例中,所述修改单元,具体被配置为执行当完成执行所述目标任务后,在所述待添加任务对应的依赖任务列表中移除所述目标任务。
在其中一个实施例中,所述修改单元,具体被配置为执行当完成执行所述目标任务后,将所述目标任务对应的被依赖任务列表设置为空列表。
在其中一个实施例中,所述一种数据同步任务调度装置,还包括:速查单元,被配置为执行获取针对所述同步任务队列的待同步记录速查表;所述待同步记录速查表为所述同步任务队列中所有的所述已添加任务对应的待同步记录;设置单元,被配置为执行当确定所述待同步记录列表中不存在与所述待添加任务对应的待同步记录一致的记录时,则设置所述待添加任务的优先级高于所述已添加任务的优先级。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于执行数据同步任务调度方法的设备600的框图。例如,设备600可以为一服务器。参照图6,设备600包括处理组件620,其进一步包括一个或多个处理器,以及由存储器622所代表的存储器资源,用于存储可由处理组件620的执行的指令,例如应用程序。存储器622中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件620被配置为执行指令,以执行上述数据同步任务调度方法。
设备600还可以包括一个电源组件624被配置为执行设备600的电源管理,一个有线或无线网络接口626被配置为将设备600连接到网络,和一个输入输出(I/O)接口628。设备600可以操作基于存储在存储器622的操作系统,例如Window6 6erverTM,Mac O6 XTM,UnixTM,LinuxTM,FreeB6DTM或类似。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器622,上述指令可由设备600的处理器执行以完成上述方法。存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据同步任务调度方法,其特征在于,包括:
获取待添加任务;所述待添加任务包括至少一条待同步记录;
在同步任务队列的已添加任务中,确定所述待添加任务对应的目标任务;所述目标任务中包含有与所述待添加任务的待同步记录相重复的记录;
记录所述待添加任务与所述目标任务之间的依赖关系;
将所述待添加任务连同所述依赖关系添加至所述同步任务队列中;所述同步任务队列用于在数据同步过程中对多个所述已添加任务进行任务调度。
2.根据权利要求1所述的数据同步任务调度方法,其特征在于,所述在所述同步任务队列的已添加任务中,确定所述待添加任务的目标任务,包括:
根据所述待添加任务对应的待同步记录,遍历各个所述已添加任务对应的待同步记录,得到目标记录;其中,所述目标记录为与所述待添加任务对应的待同步记录相重复的记录;
将所述目标记录对应的已添加任务,作为所述待添加任务的目标任务。
3.根据权利要求1所述的数据同步任务调度方法,其特征在于,所述记录所述待添加任务与所述目标任务之间的依赖关系,包括:
将所述目标任务添加至所述待添加任务对应的依赖任务列表;所述依赖任务列表用于记录优先级高于所述待添加任务的优先级的任务;
和/或,
将所述待添加任务添加至所述目标任务对应的被依赖任务列表;所述被依赖任务列表用于记录优先级低于所述目标任务的优先级的任务。
4.根据权利要求3所述的数据同步任务调度方法,其特征在于,所述将所述待添加任务连同所述依赖关系添加至所述同步任务队列中的步骤之后,还包括:
当接收到任务执行请求后,确定所述同步任务队列中各个所述已添加任务的优先级;
按照各个所述已添加任务的优先级,依次执行各个所述已添加任务;
修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系。
5.根据权利要求4所述的数据同步任务调度方法,其特征在于,所述修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系,包括:
当完成执行所述目标任务后,在所述待添加任务对应的依赖任务列表中移除所述目标任务。
6.根据权利要求4所述的数据同步任务调度方法,其特征在于,所述修改已执行的所述已添加任务与未执行的所述已添加任务之间的依赖关系,包括:
当完成执行所述目标任务后,将所述目标任务对应的被依赖任务列表设置为空列表。
7.根据权利要求1所述的数据同步任务调度方法,其特征在于,在所述获取待添加任务的步骤之后,还包括:
获取针对所述同步任务队列的待同步记录速查表;所述待同步记录速查表为所述同步任务队列中所有的所述已添加任务对应的待同步记录;
当确定所述待同步记录列表中不存在与所述待添加任务对应的待同步记录一致的记录时,则设置所述待添加任务的优先级高于所述已添加任务的优先级。
8.一种数据同步任务调度装置,其特征在于,包括:
获取单元,被配置为执行获取待添加任务;所述待添加任务包括至少一条待同步记录;
查询单元,被配置为执行在同步任务队列的已添加任务中,确定所述待添加任务对应的目标任务;所述目标任务中包含有与所述待添加任务的待同步记录相重复的记录;
记录单元,被配置为执行记录所述待添加任务与所述目标任务之间的依赖关系;
添加单元,被配置为执行将所述待添加任务连同所述依赖关系添加至所述同步任务队列中;所述同步任务队列用于在数据同步过程中对多个所述已添加任务进行任务调度。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的数据同步任务调度方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如权利要求1至7中任一项所述的数据同步任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010861983.3A CN112000682A (zh) | 2020-08-25 | 2020-08-25 | 数据同步任务调度方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010861983.3A CN112000682A (zh) | 2020-08-25 | 2020-08-25 | 数据同步任务调度方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112000682A true CN112000682A (zh) | 2020-11-27 |
Family
ID=73471463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010861983.3A Pending CN112000682A (zh) | 2020-08-25 | 2020-08-25 | 数据同步任务调度方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000682A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508716A (zh) * | 2011-09-29 | 2012-06-20 | 用友软件股份有限公司 | 任务控制装置和任务控制方法 |
CN106648859A (zh) * | 2016-12-01 | 2017-05-10 | 北京奇虎科技有限公司 | 一种任务调度方法和装置 |
CN106648839A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据处理的方法和装置 |
CN109034668A (zh) * | 2018-09-05 | 2018-12-18 | 平安科技(深圳)有限公司 | Etl任务调度方法、装置、计算机设备及存储介质 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN110806923A (zh) * | 2019-10-29 | 2020-02-18 | 百度在线网络技术(北京)有限公司 | 一种区块链任务的并行处理方法、装置、电子设备和介质 |
-
2020
- 2020-08-25 CN CN202010861983.3A patent/CN112000682A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508716A (zh) * | 2011-09-29 | 2012-06-20 | 用友软件股份有限公司 | 任务控制装置和任务控制方法 |
CN106648839A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据处理的方法和装置 |
CN106648859A (zh) * | 2016-12-01 | 2017-05-10 | 北京奇虎科技有限公司 | 一种任务调度方法和装置 |
CN109034668A (zh) * | 2018-09-05 | 2018-12-18 | 平安科技(深圳)有限公司 | Etl任务调度方法、装置、计算机设备及存储介质 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN110806923A (zh) * | 2019-10-29 | 2020-02-18 | 百度在线网络技术(北京)有限公司 | 一种区块链任务的并行处理方法、装置、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108463B (zh) | 基于时间片调度的同步任务处理方法及装置 | |
CN108256115B (zh) | 一种面向SparkSql的HDFS小文件实时合并实现方法 | |
US11086657B2 (en) | Method and system for scheduling transactions in a data system | |
US20130283259A1 (en) | Application installation | |
CN107015849B (zh) | 定时任务的提醒方法及装置 | |
CN110569252B (zh) | 一种数据处理系统及方法 | |
CN112905339B (zh) | 任务调度执行方法、装置及系统 | |
JP2016015001A (ja) | 実行時間推定装置及び方法 | |
CN110807145A (zh) | 查询引擎获取方法、设备和计算机可读存储介质 | |
CN109992390A (zh) | 定时任务调度方法以及定时任务处理方法 | |
CN112099937A (zh) | 一种资源治理方法和装置 | |
CN114327881A (zh) | 任务调度方法及装置 | |
Mohaqeqi et al. | Schedulability analysis of synchronous digraph real-time tasks | |
US10599472B2 (en) | Information processing apparatus, stage-out processing method and recording medium recording job management program | |
CN113761052A (zh) | 数据库同步方法和装置 | |
CN112000682A (zh) | 数据同步任务调度方法、装置、服务器及存储介质 | |
CN116185869A (zh) | 一种软件测试方法、系统、计算机设备及存储介质 | |
CN117009063A (zh) | 一种任务执行方法和装置 | |
CN113407629A (zh) | 数据同步的方法、装置、电子设备及存储介质 | |
CN112395081A (zh) | 一种资源在线自动回收方法、系统、服务器以及存储介质 | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 | |
CN116401259B (zh) | 一种用于ElasticSearch数据库的自动化预创建索引方法和系统 | |
US20160210320A1 (en) | Log acquisition management program, log acquisition management device, and log acquisition management method | |
CN116701410B (zh) | 数联网数据语用内存状态数据的存储方法及系统 | |
CN110209645A (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 |