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

数据传输方法、系统、装置及存储介质与流程

2022-02-19 22:38:53 来源:中国专利 TAG:


1.本发明涉及计算机领域,特别涉及一种数据传输方法、系统、装置及计算机可读存储介质。


背景技术:

2.现有的向第三方系统传输数据,大多数是使用dubbo接口调用,需在指定的位置调用指定接口,覆盖范围小、灵活性低,且存在大量重复性代码,若需修改,改动范围大,且业务系统的数据若进行回滚,已同步至第三方的数据不能进行回滚操作,数据临时更改难度大。
3.为此,需要一种更为灵活接口调用少的数据传输方法。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种数据传输方法、系统、装置及计算机可读存储介质,更为灵活接口调用少。其具体方案如下:
5.一种数据传输方法,包括:
6.利用预设的数据拦截规则,拦截与目标数据库事务对应的sql数据;
7.解析当前sql数据,判断当前sql数据是否需要向第三方系统传输;
8.如果需要,则按照所述第三方系统的业务逻辑对当前sql数据进行数据处理,得到处理后的sql业务数据;
9.将所述sql业务数据存储至线程缓存中;
10.等待与所述目标数据库事务对应的全部sql业务数据全部存储至所述线程缓存中,以确保所述线程缓存中与所述目标数据库事务对应的全部sql业务数据能够提交到己方数据库中;
11.向所述第三方系统同步所述线程缓存中与所述目标数据库事务对应的全部sql业务数据。
12.可选的,所述向所述第三方系统同步所述线程缓存中与所述目标数据库事务对应的全部sql业务数据之后,还包括:
13.将与所述目标数据库事务对应的全部sql业务数据传输至所述己方数据库进行数据持久化存储。
14.可选的,所述利用预设的数据拦截规则,拦截与目标数据库事务对应的sql数据的过程,包括:
15.利用预设的数据拦截规则和mybatis的intercetor拦截器,拦截与目标数据库事务对应的sql数据。
16.可选的,所述解析当前sql数据,判断当前sql数据是否需要向第三方系统传输的过程,包括:
17.解析出当前sql数据中的数据库操作;
18.根据所述数据库操作中的记载,判断当前sql数据是否需要向第三方系统传输。
19.可选的,所述向所述第三方系统同步所述线程缓存中与所述目标数据库事务对应的全部sql业务数据之后,还包括:
20.接收所述第三方系统反馈的同步结果;
21.若所述同步结果为失败,则定时再次向所述第三方系统同步与所述目标数据库事务对应的全部sql业务数据。
22.本发明还公开了一种数据传输系统,包括:
23.数据拦截模块,用于利用预设的数据拦截规则,拦截与目标数据库事务对应的sql数据;
24.数据判断模块,用于解析当前sql数据,判断当前sql数据是否需要向第三方系统传输;
25.逻辑处理模块,用于如果需要,则按照所述第三方系统的业务逻辑对当前sql数据进行数据处理;
26.数据缓存模块,用于将所述sql业务数据存储至线程缓存中;
27.数据等待模块,用于等待与所述目标数据库事务对应的全部sql业务数据全部存储至所述线程缓存中,以确保所述线程缓存中与所述目标数据库事务对应的全部sql业务数据能够提交到己方数据库中;
28.数据同步模块,用于向所述第三方系统同步所述线程缓存中与所述目标数据库事务对应的全部sql业务数据。
29.可选的,还包括:
30.永久存储模块,用于将与所述目标数据库事务对应的全部sql业务数据传输至所述己方数据库进行数据持久化存储。
31.可选的,所述数据拦截模块,具体用于利用预设的数据拦截规则和mybatis的intercetor拦截器,拦截与目标数据库事务对应的sql数据。
32.本发明还公开了一种数据传输装置,包括:
33.存储器,用于存储计算机程序;
34.处理器,用于执行所述计算机程序以实现如前述的数据传输方法。
35.本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的数据传输方法。
36.本发明中,数据传输方法,包括:利用预设的数据拦截规则,拦截与目标数据库事务对应的sql数据;解析当前sql数据,判断当前sql数据是否需要向第三方系统传输;如果需要,则按照第三方系统的业务逻辑对当前sql数据进行数据处理,得到处理后的sql业务数据;将sql业务数据存储至线程缓存中;等待与目标数据库事务对应的全部sql业务数据全部存储至线程缓存中,以确保线程缓存中与目标数据库事务对应的全部sql业务数据能够提交到己方数据库中;向第三方系统同步线程缓存中与目标数据库事务对应的全部sql业务数据。
37.本发明对需要同步至第三方的传输数据全部拦截,将对需传输数据的集中处理,使用拦截直接同步,减少重复性代码,并在数据库事务全部提交后,才会同步至第三方系统,确保数据一致性。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
39.图1为本发明实施例公开的一种数据传输方法流程示意图;
40.图2为本发明实施例公开的另一种数据传输方法流程示意图;
41.图3为本发明实施例公开的一种数据传输流程示意图;
42.图4为本发明实施例公开的一种数据传输系统结构示意图。
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.本发明实施例公开了一种数据传输方法,参见图1所示,该方法包括:
45.s11:利用预设的数据拦截规则,拦截与目标数据库事务对应的sql数据。
46.具体的,预先用户会设定对那些业务录入系统的那些具体数据库事务需要拦截,进而得到数据拦截规则,根据数据拦截规则对其中记载的需要拦截的目标数据库事务所上传的sql数据进行拦截。
47.其中,每个数据库事务可以包括一个或多个sql数据,在数据库事务提交的过程中,sql数据会分别上传,因此,为了拦截目标数据库事务进行后续的第三方数据同步判断,需要分别拦截与目标数据库事务对应的全部sql数据。
48.s12:解析当前sql数据,判断当前sql数据是否需要向第三方系统传输。
49.具体的,解析当前拦截到的sql数据,根据解析出的内容判断当前sql数据是否需要向第三方系统传输,解析sql数据得出的内容可以包括表结构以及数据库操作。
50.s13:如果需要,则按照第三方系统的业务逻辑对当前sql数据进行数据处理,得到处理后的sql业务数据。
51.具体的,由于在提交时的数据格式,并不一定是以第三方系统的业务逻辑设置的,因此,为了后续能够将sql数据同步至第三方系统,在当前sql数据需要同步至第三方系统后,则在sql数据存储至线程缓存中之前,按照第三方系统的业务逻辑对当前sql数据进行数据处理,进行数据格式转换等操作,确保线程缓存中的sql数据能够有效的同步至第三方系统中。
52.s14:将sql业务数据存储至线程缓存中。
53.具体的,将处理后的sql业务数据存储至线程缓存中,以便在线程缓存中缓存与目标数据库事务对应的全部sql业务数据,方便后续一次性统一的将目标数据库事务对应的全部sql业务数据全部同步至第三方系统中,避免分开同步sql业务数据至第三方系统造成多次接口调用造成的资源浪费。
54.s15:等待与目标数据库事务对应的全部sql业务数据全部存储至线程缓存中,以
确保线程缓存中与目标数据库事务对应的全部sql业务数据能够提交到己方数据库中。
55.具体的,利用mybatis的transactionsynchronization接口实现事务后置处理,等待与目标数据库事务对应的全部sql数据均被拦截,并在处理完后存储至线程缓存中,确保全部sql业务数据都准备就绪,随时都可以提交到己方数据库中。
56.s16:向第三方系统同步线程缓存中与目标数据库事务对应的全部sql业务数据。
57.具体的,在确定所有sql业务数据均在线程缓存中存储完准备就绪后,便可以向第三方系统同步线程缓存中与目标数据库事务对应的全部sql业务数据,一次性完成向第三方的数据同步过程。
58.可见,本发明实施例对需要同步至第三方的传输数据全部拦截,将对需传输数据的集中处理,使用拦截直接同步,减少重复性代码,并在数据库事务全部提交后,才会同步至第三方系统,确保数据一致性。
59.需要说明的是,本发明实施例适用于系统仅支持利用dubbo接口向第三方实时传输数据,且传送数据的业务场景过多时的场景。
60.本发明实施例公开了一种具体的方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2和图3所示,具体的:
61.s201:利用预设的数据拦截规则和mybatis的intercetor拦截器,拦截与目标数据库事务对应的sql数据。
62.具体的,可以使用mybatis的intercetor拦截器来具体对与目标数据库事务对应的sql数据进行拦截。
63.s202:解析出当前sql数据中的数据库操作;
64.s203:根据数据库操作中的记载,判断当前sql数据是否需要向第三方系统传输。
65.具体的,sql数据中的数据库操作记载了sql是否需要向第三方系统同步的操作,因此可以利用当前sql数据中的数据库操作,来判断当前sql数据是否需要向第三方系统传输。
66.s204:如果需要,则按照第三方系统的业务逻辑对当前sql数据进行数据处理,得到处理后的sql业务数据;
67.s205:将sql业务数据存储至线程缓存中;
68.s206:等待与目标数据库事务对应的全部sql业务数据全部存储至线程缓存中,以确保线程缓存中与目标数据库事务对应的全部sql业务数据能够提交到己方数据库中;
69.s207:向第三方系统同步线程缓存中与目标数据库事务对应的全部sql业务数据;
70.s208:接收第三方系统反馈的同步结果。
71.具体的,在向第三方系统发出同步过程后,在同步结束后会接收第三方系统反馈的同步结果,以便得知同步是否成功。
72.s209:若同步结果为失败,则定时再次向第三方系统同步与目标数据库事务对应的全部sql业务数据。
73.具体的,如果同步失败,则记录上次传输sql业务数据时的传输id,根据此id以便定时再次传输,例如,1分钟后再次向第三方系统同步与目标数据库事务对应的全部sql业务数据,同时也可以设置传输次数,例如,可以失败重传3次,进行多次尝试,也避免过多无用尝试。
74.具体的,当然如果同步成功,则不用做额外的动作。
75.s210:将与目标数据库事务对应的全部sql业务数据传输至己方数据库进行数据持久化存储。
76.具体的,在将数据同步至第三方系统后,便可以将与目标数据库事务对应的全部sql业务数据传输至己方数据库进行数据持久化存储,由于sql业务数据存储至线程缓存前已经对sql业务数据进行了数据校验等处理,因此,能够确保线程缓存中的全部sql数据可以安全无误的存储至己方数据库,因此,可以晚于第三方同步进行存储,同时,因晚于第三方存储,在第三方同步失败后,可以选择不存储至己方数据库,确保己方数据库与第三方系统中的数据同步。
77.相应的,本发明实施例还公开了一种数据传输系统,参见图3所示,该系统包括:
78.数据拦截模块11,用于利用预设的数据拦截规则,拦截与目标数据库事务对应的sql数据;
79.数据判断模块12,用于解析当前sql数据,判断当前sql数据是否需要向第三方系统传输;
80.逻辑处理模块13,用于如果需要,则按照第三方系统的业务逻辑对当前sql数据进行数据处理;
81.数据缓存模块14,用于将sql业务数据存储至线程缓存中;
82.数据等待模块15,用于等待与目标数据库事务对应的全部sql业务数据全部存储至线程缓存中,以确保线程缓存中与目标数据库事务对应的全部sql业务数据能够提交到己方数据库中;
83.数据同步模块16,用于向第三方系统同步线程缓存中与目标数据库事务对应的全部sql业务数据。
84.可见,本发明实施例对需要同步至第三方的传输数据全部拦截,将对需传输数据的集中处理,使用拦截直接同步,减少重复性代码,并在数据库事务全部提交后,才会同步至第三方系统,确保数据一致性。
85.具体的,还可以包括永久存储模块;其中,
86.永久存储模块,用于将与目标数据库事务对应的全部sql业务数据传输至己方数据库进行数据持久化存储。
87.具体的,上述数据拦截模块11,具体用于利用预设的数据拦截规则和mybatis的intercetor拦截器,拦截与目标数据库事务对应的sql数据。
88.具体的,数据判断模块12,包括解析单元和判断单元;其中,
89.解析单元,用于解析出当前sql数据中的数据库操作;
90.判断单元,用于根据数据库操作中的记载,判断当前sql数据是否需要向第三方系统传输。
91.具体的,还包括:
92.同步结果接收模块,用于接收第三方系统反馈的同步结果;
93.再次同步模块,用于若同步结果为失败,则定时再次向第三方系统同步与目标数据库事务对应的全部sql业务数据。
94.此外,本发明实施例还公开了一种数据传输装置,包括:
95.存储器,用于存储计算机程序;
96.处理器,用于执行计算机程序以实现如前述的数据传输方法。
97.另外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的数据传输方法。
98.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
99.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
100.以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献