本发明专利技术公开了一种动态优化的多线程数据同步方法及系统,包括:主线程按照预设的时间间隔阈值,根据待同步数据中每个地区的地区标识确定每个地区对应的地区数据条数;主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程;每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步。本发明专利技术使用主线程、子线程配合完成,在实现多线程数据同步的同时,控制了子线程的数量,保证服务器资源不会消耗过大,高效稳定;提高了数据同步的性能,降低了某地区数据迅速增多造成的影响,鲁棒性强;由于数据的拆分方式灵活多样,可根据不同的业务需求使用不同的属性进行拆分,通用性强,适用性广。
A dynamic optimization method and system for multithreaded data synchronization
【技术实现步骤摘要】
一种动态优化的多线程数据同步方法及系统
本专利技术涉及数据处理
,并且更具体地,涉及一种动态优化的多线程数据同步方法及系统。
技术介绍
对于管理企业会员、保障会员权益的综合业务系统,主要包含客户端、服务端、门户网站、微信端等子系统。会员系统的数据来源是CRM(客户关系管理)系统,数据同步过程大致分为三步:第一步,当CRM系统数据库中的数据发生新增、删除、修改操作时,数据库触发器自动处理,在增量数据表中插入一条数据;第二步,数据同步中转服务,定期从增量数据表中查询数据,并调用会员系统“数据导入接口”实现批量数据同步;第三步,“数据导入接口”接收批量数据后,进行数据清洗、数据保存等操作。本专利技术是为优化第二步的数据同步性能而提出的方法。会员系统所需的数据分为不同类型,主要有“会员权益”、“会员权益包”、“会员权益包与会员权益关系”、“会员”、“会员与会员权益关系”等。数据同步存在先后顺序依赖,如必须先同步“会员权益”、“会员权益包”数据后,才能同步“会员权益包与会员权益关系”数据等。增量数据表中的数据不易区分数据类型,因此按照每条数据唯一的“数据编号”顺序同步,保证数据同步的顺序。由于完全按照编号顺序同步,会导致只能使用单线程,出现同步速度慢的问题,不同地区的数据之间没有先后顺序依赖,因此根据“地区编号”将数据进行拆分,不同地区实现多线程数据同步。然而,当分布地区太多,且单个地区数据量较小时,容易造成资源浪费,而简单的合并处理又容易造成数据积压等问题。因此,需要一种动态优化的多线程数据同步方法。
技术实现思路
本专利技术提出一种动态优化的多线程数据同步方法及系统,以解决如何快速高效地实现数据同步的问题。为了解决上述问题,根据本专利技术的一个方面,提供了一种动态优化的多线程数据同步方法,所述方法包括:主线程按照预设的时间间隔阈值,根据待同步数据中每个地区的地区标识确定每个地区对应的地区数据条数;主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程;每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步。优选地,其中所述主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程,包括:当存在未分配子线程的地区时,判断该地区对应的地区数据条数是否小于等于预设的数据同步条数阈值;若是,则创建单独处理该地区的子线程;反之,则标记该地区为需合并处理的地区;以及当存在需合并处理的地区时,根据需合并处理的地区的对应的数据条数,创建合并处理的子线程,以为每个地区分配对应的子线程。优选地,其中所述每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步,包括:每个子线程将对应的已分配地区标记为正在处理状态;根据待同步数据的编号选取预设的数据同步条数阈值的数据,若选取的数据条数大于预设选取条数阈值,则直接调用接口同步数据,实现一次数据同步。优选地,其中所述方法还包括:在每个子线程将对应的已分配地区标记为正在处理状态之前,判断该子线程对应的所有地区的处理状态;若不存在已经为正在处理状态的地区,则将该子线程对应的已分配地区标记为正在处理状态;反之,则直接结束此次数据同步。优选地,其中所述方法还包括:当该次数据同步成功时,若该次同步的数据条数小于预设的数据同步条数阈值,则表示数据已全部同步完成,将该子线程对应的已分配地区标记为未处理状态;当该次数据同步成功时,若该次同步的数据条数大于等于预设的数据同步条数阈值,则判断是否满足地区个数是否大于1且同步成功次数大于已分配的地区个数;若满足,则表示存在数据积压,将该子线程对应的已分配地区标记为未处理状态,并立即结束当前线程,由主线程重新调度分配独立处理子线程;若不满足,则重新根据待同步数据的编号重新选取预设的数据同步条数阈值的数据,以进行下一次的数据同步。优选地,其中所述方法还包括:若选取的数据条数大于预设选取条数阈值,则表示数据已全部同步完成,将该子线程对应的已分配地区标记为未处理状态。根据本专利技术的另一个方面,提供了一种动态优化的多线程数据同步系统,所述系统包括:待同步的地区数据确定单元,用于使主线程按照预设的时间间隔阈值,根据待同步数据中每个地区的地区标识确定每个地区对应的地区数据条数;子线程分配单元,用于使主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程;数据同步单元,用于每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步。优选地,其中所述子线程分配单元,使主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程,包括:当存在未分配子线程的地区时,判断该地区对应的地区数据条数是否小于等于预设的数据同步条数阈值;若是,则创建单独处理该地区的子线程;反之,则标记该地区为需合并处理的地区;以及当存在需合并处理的地区时,根据需合并处理的地区的对应的数据条数,创建合并处理的子线程,以为每个地区分配对应的子线程。优选地,其中所述数据同步单元,使每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步,包括:每个子线程将对应的已分配地区标记为正在处理状态;根据待同步数据的编号选取预设的数据同步条数阈值的数据,若选取的数据条数大于预设选取条数阈值,则直接调用接口同步数据,实现一次数据同步。优选地,其中所述数据同步单元,还包括:在每个子线程将对应的已分配地区标记为正在处理状态之前,判断该子线程对应的所有地区的处理状态;若不存在已经为正在处理状态的地区,则将该子线程对应的已分配地区标记为正在处理状态;反之,则直接结束此次数据同步。优选地,其中所述数据同步单元,还包括:当该次数据同步成功时,若该次同步的数据条数小于预设的数据同步条数阈值,则表示数据已全部同步完成,将该子线程对应的已分配地区标记为未处理状态;当该次数据同步成功时,若该次同步的数据条数大于等于预设的数据同步条数阈值,则判断是否满足地区个数是否大于1且同步成功次数大于已分配的地区个数;若满足,则表示存在数据积压,将该子线程对应的已分配地区标记为未处理状态,并立即结束当前线程,由主线程重新调度分配独立处理子线程;若不满足,则重新根据待同步数据的编号重新选取预设的数据同步条数阈值的数据,以进行下一次的数据同步。优选地,其中所述数据同步单元,还包括:若选取的数据条数大于预设选取条数阈值,则表示数据已全部同步完成,将该子线程对应的已分配地区标记为未处理状态。本专利技术提供了一种动态优化的多线程数据同步方法及系统,包括:主线程按照预设的时间间隔阈值,根据待同步数据中每个地区的地区标识确定每个地区对应的地区数据条数;主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个本文档来自技高网...
【技术保护点】
1.一种动态优化的多线程数据同步方法,其特征在于,所述方法包括:/n主线程按照预设的时间间隔阈值,根据待同步数据中每个地区的地区标识确定每个地区对应的地区数据条数;/n主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程;/n每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步。/n
【技术特征摘要】
1.一种动态优化的多线程数据同步方法,其特征在于,所述方法包括:
主线程按照预设的时间间隔阈值,根据待同步数据中每个地区的地区标识确定每个地区对应的地区数据条数;
主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程;
每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步。
2.根据权利要求1所述的方法,其特征在于,所述主线程根据每个地区对应的地区数据条数,按照预设的子线程分配策略为每个地区分配对应的子线程,包括:
当存在未分配子线程的地区时,判断该地区对应的地区数据条数是否小于等于预设的数据同步条数阈值;若是,则创建单独处理该地区的子线程;反之,则标记该地区为需合并处理的地区;以及
当存在需合并处理的地区时,根据需合并处理的地区的对应的数据条数,创建合并处理的子线程,以为每个地区分配对应的子线程。
3.根据权利要求1所述的方法,其特征在于,所述每个子线程根据已分配地区对应的地区数据条数,按照预设的同步策略进行数据同步,包括:
每个子线程将对应的已分配地区标记为正在处理状态;
根据待同步数据的编号选取预设的数据同步条数阈值的数据,若选取的数据条数大于预设选取条数阈值,则直接调用接口同步数据,实现一次数据同步。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在每个子线程将对应的已分配地区标记为正在处理状态之前,判断该子线程对应的所有地区的处理状态;若不存在已经为正在处理状态的地区,则将该子线程对应的已分配地区标记为正在处理状态;反之,则直接结束此次数据同步。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当该次数据同步成功时,若该次同步的数据条数小于预设的数据同步条数阈值,则表示数据已全部同步完成,将该子线程对应的已分配地区标记为未处理状态;
当该次数据同步成功时,若该次同步的数据条数大于等于预设的数据同步条数阈值,则判断是否满足地区个数是否大于1且同步成功次数大于已分配的地区个数;若满足,则表示存在数据积压,将该子线程对应的已分配地区标记为未处理状态,并立即结束当前线程,由主线程重新调度分配独立处理子线程;若不满足,则重新根据待同步数据的编号重新选取预设的数据同步条数阈值的数据,以进行下一次的数据同步。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若选取的数据条数大于预设选取条数阈值,则表示数据已全部同步完成,将该子线程对应的已分配地区标记为未处理状态。
7.一种动态优化的多线程数据同步系统,其特征在于,所述系统...
【专利技术属性】
技术研发人员:熊林欣,朱兴,陈晶鑫,吕婉莹,徐锦子,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。