一种数据同步方法及系统技术方案

技术编号:28467357 阅读:24 留言:0更新日期:2021-05-15 21:33
本申请公开了一种数据同步方法及系统,数据同步方法包括:获取步骤:调用企业微信AP I获取部门数据、员工数据以及外部联系人数据;处理步骤:若调用所述企业微信AP I失败,根据所述企业微信AP I调用失败的原因分别处理所述部门数据或所述员工数据;组装步骤:组装所述部门数据、所述员工数据以及所述外部联系人数据;分表步骤:根据组装后的数据进行更新数据库。本发明专利技术提出数据同步方法及系统,通过企业微信AP I获取组织架构,根据组织架构分别获取员工信息和外部联系人信息,同时进行批量数据更新和保存提高了企业微信AP I资源利用率,并保证了数据同步的一致性。并保证了数据同步的一致性。并保证了数据同步的一致性。

【技术实现步骤摘要】
一种数据同步方法及系统


[0001]本申请涉及数据同步
,尤其涉及一种数据同步方法及系统。

技术介绍

[0002]由于企业微信的用户数据量日益增长,导致针对全部或者某些组织架构中的用户的功能直接调用企业微信API会造成大量的网络开销,因此,需要对企业微信的员工信息和外部联系人信息进行本地存储。同时,由于网络波动等原因可能会导致企业微信的数据和本地数据库的数据造成不一致,需要对这部分数据进行同步。现有的技术能够定时全量更新所有员工和外部联系人信息,但是由于保存员工信息和外部联系人信息到本地数据库时,会涉及到多张表,这些表之间有部分重复的字段信息,且这些表都做了hash分表处理,逐条比对并更新数据会有很大的数据量,导致执行员工信息和外部联系人信息会耗费大量时间,并企业微信API调用会有单位时间的调用次数限制,如果超过限制,就会返回调用失败,此方法会导致产生大量的调用次数,导致同步数据失败过多,造成时间和系统资源的浪费。另有相似技术能够拆分整体任务为多个子任务,各自执行,但是调用企业微信API有单位时间的次数限制,多张本地表进行数据同步时,都涉及到企业微信API的调用,拆分成多个子任务时会浪费多个相同的企业微信API调用。由于企业微信API调用有单位时间内的频次限制,且员工信息对应外部联系人信息数据量较大,需尽量减少调用次数。通过任务拆分,大量相同数据的去重,指定时间段执行,调用失败的记录重试等,完成数据同步的方案实现。
[0003]因此,针对以上现状,本专利技术提供一种数据同步方法及系统,通过企业微信API获取组织架构,根据组织架构分别获取员工信息和外部联系人信息,对相同请求参数的结果进行缓存,对多张表相同数据进行重用,同时进行批量数据更新和保存,解决了企业微信API调用次数限制,提高了企业微信API资源利用率,降低了同步任务的执行时间,并保证了数据同步的一致性。

技术实现思路

[0004]本申请实施例提供了一种数据同步方法及系统,以至少解决相关技术中主观因素影响的问题。
[0005]本专利技术提供了一种数据同步方法,包括:
[0006]获取步骤:调用企业微信API获取部门数据、员工数据以及外部联系人数据;
[0007]处理步骤:若调用所述企业微信API失败,根据所述企业微信API调用失败的原因分别处理所述部门数据或所述员工数据;
[0008]组装步骤:组装所述部门数据、所述员工数据以及所述外部联系人数据;
[0009]分表步骤:根据组装后的数据进行更新数据库。
[0010]上述的数据同步方法,所述获取步骤包括,调用企业微信API获取所述部门数据,根据所述部门数据调用所述企业微信API,并获取部门对应的所述员工数据,根据所述员工
数据调用所述企业微信API,并获取员工对应的所述外部联系人数据。
[0011]上述的数据同步方法,所述处理步骤包括,若所述部门或者所述员工调用所述企业微信API失败,记录所述部门或所述员工对应的部门数据或员工数据,并根据所述企业微信API调用失败的原因分别处理所述部门数据或者员工数据,调用企业微信API次数超出企业微信API调用限制时,进行调用操作重试处理。
[0012]上述的数据同步方法,所述组装步骤包括,将所述部门数据、所述员工数据以及所述外部联系人数据构造成所述员工与所述外部联系人信息、所述外部联系人与所述员工信息、外部联系人详情与unionid信息、所述外部联系人详情信息、所述外部联系人与unionid信息。
[0013]上述的数据同步方法,所述分表步骤包括,分别对组装后的数据进行去重以及hash分表处理后,分别批量保存或更新所述数据库。
[0014]本专利技术还提供一种数据同步系统,其中,适用于上述所述的数据同步方法,所述数据同步系统包括:
[0015]获取单元:调用企业微信API获取部门数据、员工数据以及外部联系人数据;
[0016]处理单元:若调用所述企业微信API失败,根据所述企业微信API调用失败的原因分别处理所述部门数据或所述员工数据;
[0017]组装单元:组装所述部门数据、所述员工数据以及所述外部联系人数据;
[0018]分表单元:根据组装后的数据进行更新数据库。
[0019]上述的数据同步系统,所述获取单元调用企业微信API获取所述部门数据,根据所述部门数据调用所述企业微信API,并获取部门对应的所述员工数据,根据所述员工数据调用所述企业微信API,并获取员工对应的所述外部联系人数据。
[0020]上述的数据同步系统,若所述部门或者所述员工调用所述企业微信API失败,所述处理单元记录所述部门或所述员工对应的部门数据或员工数据,并根据所述企业微信API调用失败的原因分别处理所述部门数据或者员工数据,调用企业微信API次数超出企业微信API调用限制时,进行调用操作重试处理。
[0021]上述的数据同步系统,所述组装单元将所述部门数据、所述员工数据以及所述外部联系人数据构造成所述员工与所述外部联系人信息、所述外部联系人与所述员工信息、外部联系人详情与unionid信息、所述外部联系人详情信息、所述外部联系人与unionid信息。
[0022]上述的数据同步系统,所述分表单元分别对组装后的数据进行去重以及hash分表处理后,分别批量保存或更新所述数据库。
[0023]相比于相关技术,本专利技术提供一种数据同步方法及系统,通过企业微信API获取组织架构,根据组织架构分别获取员工信息和外部联系人信息,对相同请求参数的结果进行缓存,对多张表相同数据进行重用,同时进行批量数据更新和保存,解决了企业微信API调用次数限制,提高了企业微信API资源利用率,降低了同步任务的执行时间,并保证了数据同步的一致性。
[0024]本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
[0025]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0026]图1是根据本申请实施例的数据同步方法流程图;
[0027]图2是根据本申请实施例的数据同应用步流程图;
[0028]图3为本专利技术的数据同步系统的结构示意图;
[0029]图4是根据本申请实施例的电子设备的框架图。
[0030]其中,附图标记为:
[0031]获取单元:51;
[0032]处理单元:52;
[0033]组装单元:53;
[0034]分表单元:54;
[0035]总线:80;
[0036]处理器:81;
[0037]存储器:82;
[0038]通信接口:83。
具体实施方式
[0039]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:获取步骤:调用企业微信API获取部门数据、员工数据以及外部联系人数据;处理步骤:若调用所述企业微信API失败,根据所述企业微信API调用失败的原因分别处理所述部门数据或所述员工数据;组装步骤:组装所述部门数据、所述员工数据以及所述外部联系人数据;分表步骤:根据组装后的数据进行更新数据库。2.根据权利要求1所述的数据同步方法,其特征在于,所述获取步骤包括,调用企业微信API获取所述部门数据,根据所述部门数据调用所述企业微信API,并获取部门对应的所述员工数据,根据所述员工数据调用所述企业微信API,并获取员工对应的所述外部联系人数据。3.根据权利要求2所述的数据同步方法,其特征在于,所述处理步骤包括,若所述部门或者所述员工调用所述企业微信API失败,记录所述部门或所述员工对应的部门数据或员工数据,并根据所述企业微信API调用失败的原因分别处理所述部门数据或者员工数据,调用企业微信API次数超出企业微信API调用限制时,进行调用操作重试处理。4.根据权利要求2所述的数据同步方法,其特征在于,所述组装步骤包括,将所述部门数据、所述员工数据以及所述外部联系人数据构造成所述员工与所述外部联系人信息、所述外部联系人与所述员工信息、外部联系人详情与unionid信息、所述外部联系人详情信息、所述外部联系人与unionid信息。5.根据权利要求1所述的数据同步方法,其特征在于,所述分表步骤包括,分别对组装后的数据进行去重以及hash分表处理后,分别批量保存或更新所述数据库。6.一种数据同步系统,其特征在于,适用于...

【专利技术属性】
技术研发人员:柏会东
申请(专利权)人:北京明略软件系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1