本发明专利技术实施例提供一种异步并行数据同步方法及装置,属于计算机技术领域。所述方法包括:从缓存队列中读取业务信息发生变化的业务流程的标识;根据所述业务流程的标识确定所述业务流程的配置信息,其中所述配置信息包括与所述业务流程对应的数据表的信息,所述数据表的信息包括数据表的标识;针对与所述业务流程对应的每个所述数据表,并行对所述数据表中的数据进行更新;判断每个所述数据表中的数据是否均更新成功;以及在每个所述数据表中的数据均更新成功的情况下,确定数据同步完成。其能够提升异步并行数据同步的效率、保证数据原子性、提升存储数据的可控性、减少脏数据,并且能够实时监控到每个数据表的更新进程,确保数据同步的完成。
Asynchronous parallel data synchronization method and device
【技术实现步骤摘要】
异步并行数据同步方法及装置
本专利技术涉及计算机
,具体地涉及一种异步并行数据同步方法及装置。
技术介绍
通常在一些业务流程中,会涉及需要异步并行存储数据的情况。上游设备和下游设备是进行异步并行存储数据的两端,上游设备数据变化的时候,需要下游设备同步更新变化的数据。相关技术中,主要通过以下方式来基于上游设备中数据的变化,更新下游设备数据库中的数据。下游设备主动从上游设备获取所有变化的数据,根据数据解析规则,解析数据,最终存储到数据库中。在实际运行过程中,本申请专利技术人发现,这种方式具有以下的缺点:(1)涉及到需要在多张数据表中写入数据的时候,如果数据量较大,这种方式将非常耗时且处理速度慢,影响数据的及时性;(2)难以保证数据原子性,且逻辑复杂。
技术实现思路
本专利技术实施例的目的是提供一种异步并行数据同步方法及装置,用于解决或至少部分解决上述技术问题。为了实现上述目的,本专利技术实施例提供一种异步并行数据同步方法,所述方法包括:从缓存队列中读取业务信息发生变化的业务流程的标识;根据所述业务流程的标识确定所述业务流程的配置信息,其中所述配置信息包括与所述业务流程对应的数据表的信息,所述数据表的信息包括数据表的标识;针对与所述业务流程对应的每个所述数据表,并行执行以下步骤来对所述数据表中的数据进行更新:获取所述业务流程中变化的所述业务信息;从所述业务信息中解析出所述数据表需要的数据;以及基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新;判断每个所述数据表中的数据是否均更新成功;以及在每个所述数据表中的数据均更新成功的情况下,确定数据同步完成。可选的,所述基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新包括:使用所述数据表的标识查询所述数据表;响应于查询到所述数据表,将所述数据表中与所述业务流程的标识对应的原始数据标识为无效数据;针对所述业务流程的标识向所述数据表中写入解析出的所述数据表需要的数据;判断解析出的所述数据表需要的数据是否写入成功;以及在写入成功的情况下,在所述缓存队列中记录关于所述数据表的第一数据写入结果,所述第一数据写入结果指示数据写入成功。可选的,所述基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新还包括:在写入不成功的情况下,将所述数据表中标识为无效数据的所述原始数据标识为有效数据;判断写入不成功的次数是否达到预设次数;在没有达到所述预设次数的情况下,再次对所述数据表中的数据进行更新;以及在达到所述预设次数的情况下,在所述缓存队列中记录关于所述数据表的第二数据写入结果,所述第二数据写入结果指示数据写入失败。可选的,所述判断每个所述数据表中的数据是否均更新成功包括:根据所述缓存队列中记录的关于所述数据表的数据写入结果来判断每个所述数据表中的数据是否均更新成功。可选的,所述方法还包括:在每个所述数据表中的数据均更新成功的情况下,删除每个所述数据表中标识为无效数据的所述原始数据。可选的,所述方法还包括:在至少一个所述数据表中的数据更新失败的情况下,将每个所述数据表中针对所述业务流程的标识的数据回退为原始数据。可选的,所述方法还包括:在所述缓存队列中删除针对所述业务流程存储的信息。可选的,所述获取所述业务流程中变化的所述业务信息包括:生成包括所述业务流程的标识的业务信息请求;发送所述请求;以及接收响应于所述请求的所述业务流程中变化的所述业务信息。相应的,本专利技术实施例还提供一种异步并行数据同步装置,所述装置包括:读取模块,用于从缓存队列中读取业务信息发生变化的业务流程的标识;第一确定模块,用于根据所述业务流程的标识确定所述业务流程的配置信息,其中所述配置信息包括与所述业务流程对应的数据表的信息,所述数据表的信息包括数据表的标识;更新模块,用于针对与所述业务流程对应的每个所述数据表,并行执行以下步骤来对所述数据表中的数据进行更新:获取所述业务流程中变化的所述业务信息;从所述业务信息中解析出所述数据表需要的数据;以及基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新;判断模块,用于判断每个所述数据表中的数据是否均更新成功;第二确定模块,用于在每个所述数据表中的数据均更新成功的情况下,确定数据同步完成。可选的,所述更新模块基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新包括:使用所述数据表的标识查询所述数据表;响应于查询到所述数据表,将所述数据表中与所述业务流程的标识对应的原始数据标识为无效数据;针对所述业务流程的标识向所述数据表中写入解析出的所述数据表需要的数据;判断解析出的所述数据表需要的数据是否写入成功;以及在写入成功的情况下,在所述缓存队列中记录关于所述数据表的第一数据写入结果,所述第一数据写入结果指示数据写入成功。可选的,所述更新模块基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新还包括:在写入不成功的情况下,将所述数据表中标识为无效数据的所述原始数据标识为有效数据;判断写入不成功的次数是否达到预设次数;在没有达到所述预设次数的情况下,再次对所述数据表中的数据进行更新;以及在达到所述预设次数的情况下,在所述缓存队列中记录关于所述数据表的第二数据写入结果,所述第二数据写入结果指示数据写入失败。可选的,所述判断模块用于根据以下步骤判断每个所述数据表中的数据是否均更新成功包括:根据所述缓存队列中记录的关于所述数据表的数据写入结果来判断每个所述数据表中的数据是否均更新成功。可选的,所述装置还包括:第一删除模块,用于在每个所述数据表中的数据均更新成功的情况下,删除每个所述数据表中标识为无效数据的所述原始数据。可选的,所述装置还包括:回退模块,用于在至少一个所述数据表中的数据更新失败的情况下,将每个所述数据表中针对所述业务流程的标识的数据回退为原始数据。可选的,所述装置还包括:第二删除模块,用于在所述缓存队列中删除针对所述业务流程存储的信息。可选的,所述更新模块用于根据以下步骤获取所述业务流程中变化的所述业务信息:生成包括所述业务流程的标识的业务信息请求;发送所述请求;以及接收响应于所述请求的所述业务流程中变化的所述业务信息。相应的,本专利技术实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的异步并行数据同步方法。相应的,本专利技术实施例还提供一种电子设备,所述电子设备包括至少一个处理器、与处理器连接的至少一个存储器、以及总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述的异步并行数据同步方法。通过上述技术方案,针对业务信息发生变化的业务流程,获取业务流程对应的每个数据表,分别本文档来自技高网...
【技术保护点】
1.一种异步并行数据同步方法,其特征在于,所述方法包括:/n从缓存队列中读取业务信息发生变化的业务流程的标识;/n根据所述业务流程的标识确定所述业务流程的配置信息,其中所述配置信息包括与所述业务流程对应的数据表的信息,所述数据表的信息包括数据表的标识;/n针对与所述业务流程对应的每个所述数据表,并行执行以下步骤来对所述数据表中的数据进行更新:/n获取所述业务流程中变化的所述业务信息;/n从所述业务信息中解析出所述数据表需要的数据;以及/n基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新;/n判断每个所述数据表中的数据是否均更新成功;以及/n在每个所述数据表中的数据均更新成功的情况下,确定数据同步完成。/n
【技术特征摘要】
1.一种异步并行数据同步方法,其特征在于,所述方法包括:
从缓存队列中读取业务信息发生变化的业务流程的标识;
根据所述业务流程的标识确定所述业务流程的配置信息,其中所述配置信息包括与所述业务流程对应的数据表的信息,所述数据表的信息包括数据表的标识;
针对与所述业务流程对应的每个所述数据表,并行执行以下步骤来对所述数据表中的数据进行更新:
获取所述业务流程中变化的所述业务信息;
从所述业务信息中解析出所述数据表需要的数据;以及
基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新;
判断每个所述数据表中的数据是否均更新成功;以及
在每个所述数据表中的数据均更新成功的情况下,确定数据同步完成。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新包括:
使用所述数据表的标识查询所述数据表;
响应于查询到所述数据表,将所述数据表中与所述业务流程的标识对应的原始数据标识为无效数据;
针对所述业务流程的标识向所述数据表中写入解析出的所述数据表需要的数据;
判断解析出的所述数据表需要的数据是否写入成功;以及
在写入成功的情况下,在所述缓存队列中记录关于所述数据表的第一数据写入结果,所述第一数据写入结果指示数据写入成功。
3.根据权利要求2所述的方法,其特征在于,所述基于所述数据表的标识和所述业务流程的标识使用解析出的所述数据表需要的数据对所述数据表中的数据进行更新还包括:
在写入不成功的情况下,将所述数据表中标识为无效数据的所述原始数据标识为有效数据;
判断写入不成功的次数是否达到预设次数;
在没有达到所述预设次数的情况下,再次对所述数据表中的数据进行更新;以及
在达到所述预设次数的情况下,在所述缓存队列中记录关于所述数据表的第二数据写入结果,所述第二数据写入结果指示数据写入失败。
4.根据权利要求3所述的方法,其特征在于,所述判断每个所述数据表中...
【专利技术属性】
技术研发人员:李鹏凯,刘守生,
申请(专利权)人:贝壳技术有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。