基于java的防止父子依赖job执行后数据错乱的方法及系统
技术领域
1.本发明涉及区块链技术领域,具体地,涉及一种基于java的防止父子依赖job执行后数据错乱的方法及系统,更为具体地,涉及基于java的防止父子依赖job执行后数据错乱的解决方案。
背景技术:
2.大数据作为时下最火热的it行业的词汇,随之而来的数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。随着大数据时代的来临,大数据分析也应运而生。
3.现有技术中,大量的数据需要录入到标准的表格中,由于延迟、录入失败等原因,将导致原始数据与表格中的目标数据不一致,这是就需要对数据进行检测,保证目标数据与原始数据的一致性。
4.专利文献cn112199184a(申请号:202011203431.x)公开了一种跨语言任务调度方法、装置、设备及可读存储介质,该方法包括获取具有任务依赖关系的上游任务和下游任务;分配上游任务给上游节点,分配下游任务给下游节点;上游节点与下游节点对应不同编程语言;利用任务依赖关系,确定数据交换规则;在上游节点和下游节点之间,建立远程过程调用对应的通讯连接;利用通讯连接并结合数据交换规则,在上游节点和下游节点之间,进行跨语言的实时数据传输。该专利可满足分布式任务的调度和计算的情况下,便省去了单独存储中间结果数据,减少系统存储io开销,能够加快任务执行效率。本发明job调度部分是仅基于java的父子job二次开发,语言范围小于该专利的“跨语言”范围。该专利注重在上游节点和下游节点之间,进行跨语言的实时数据传输,本发明着重父子job间的调度机制的完备性,并未涉及“实时数据传输”,且包含把数据校验规则封装成job的部分,意在解决“父子依赖job执行后数据错乱”的问题,即侧重点不同。
5.专利文献cn109828979a(申请号:201910100217.2)公开了一种数据一致性检测方法,属于大数据处理技术领域,实现了目标数据与原始数据的一致性检测。包括如下步骤:s1:主机接收原始数据和目标数据;s2:主机设定检测节点;s3:主机根据检测节点,提取原始数据与目标数据中对应的数据,进行数据数量比较,判断数据一致性,若数量一致,则该检测节点对应的原始数据与目标数据一致,若数量不一致,则该检测节点对应的原始数据与目标数据不一致,返回步骤s2。本发明数据校验部分,重在通过二次开发,将数据校验规则封装成job,并通过父子job的配置,达到防止父子依赖job执行后数据错乱的效果。该专利仅支持根据目标数据和原始数据的数量一致性校验,判断数据的一致性。所以本发明和该专利切入点不同。
技术实现要素:
6.针对现有技术中的缺陷,本发明的目的是提供一种基于java的防止父子依赖job执行后数据错乱的方法及系统。
7.根据本发明提供的一种基于java的防止父子依赖job执行后数据错乱的方法,包括:
8.步骤s1:对job中间件进行封装,使封装后的job中间件支持父子job依赖;
9.步骤s2:将多项数据check规则通过组id关联配置成组,并包装成数据校验job;
10.步骤s3:job中间件按业务job顺序依次执行业务job,当当前业务job执行成功后,则执行相应的数据校验job,相应的数据校验job执行成功后,下一个业务job继承当前数据校验job,重复执行步骤s3,直至执行结束。
11.优选地,所述封装后的job中间件包括:封装后的job中间件支持父子job多层依赖的配置与执行;
12.所述父子job多层依赖的配置与执行包括:执行父job,在可配置的等待时间后,判断父job执行情况,当父job执行成功,则执行子job;当父job执行失败或执行中时,则不执行子job。
13.优选地,所述封装后的job中间件还包括父子job在依赖关系的基础上,支持job重试,以及支持父job取消,则子job也取消。
14.优选地,所述步骤s2中数据校验job支持通过页面配置数据校验规则和执行顺序以及支持将多项数据校验规则关联到一个job名,多对一封装成一个job,依次执行数据校验规则。
15.优选地,所述步骤s3包括:任何一项数据校验规则执行失败,则对应job执行失败,并发出告警信息;
16.所述告警信息包括执行失败的校验规则名、期望值和实际值。
17.根据本发明提供的一种基于java的防止父子依赖job执行后数据错乱的系统,包括:
18.模块m1:对job中间件进行封装,使封装后的job中间件支持父子job依赖;
19.模块m2:将多项数据check规则通过组id关联配置成组,并包装成数据校验job;
20.模块m3:job中间件按业务job顺序依次执行业务job,当当前业务job执行成功后,则执行相应的数据校验job,相应的数据校验job执行成功后,下一个业务job继承当前数据校验job,重复触发模块m3执行,直至执行结束。
21.优选地,所述封装后的job中间件包括:封装后的job中间件支持父子job多层依赖的配置与执行;
22.所述父子job多层依赖的配置与执行包括:执行父job,在可配置的等待时间后,判断父job执行情况,当父job执行成功,则执行子job;当父job执行失败或执行中时,则不执行子job。
23.优选地,所述封装后的job中间件还包括父子job在依赖关系的基础上,支持job重试,以及支持父job取消,则子job也取消。
24.优选地,所述模块m2中数据校验job支持通过页面配置数据校验规则和执行顺序以及支持将多项数据校验规则关联到一个job名,多对一封装成一个job,依次执行数据校验规则。
25.优选地,所述模块m3包括:任何一项数据校验规则执行失败,则对应job执行失败,并发出告警信息;
26.所述告警信息包括执行失败的校验规则名、期望值和实际值。
27.与现有技术相比,本发明具有如下的有益效果:
28.1、本发明通过java react ant design框架,对job中间件的二次开发,解决父子job依赖问题;
29.2、本发明通过java将数据校验规则封装为job,并和业务job间隔配置为父子job,从而解决父子依赖job批量处理数据后,数据易错乱的问题;
30.3、本发明精准的告警机制,更是能在第一时间帮助技术人员评估后续处理方案,起到双保险作用;
31.4、本发明将多元化check规则包装成job,扩展性会很灵活;
32.5、本发明确保前一个业务job执行后的数据校验均无问题,再执行下一个job,该机制最大程度规避了前一个业务job处理错误的基础上,后续job的处理错上加错的情况。
附图说明
33.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
34.图1为防止父子依赖job执行后数据错乱的执行流程;
35.图2为基于java的防止父子依赖job执行后数据错乱的系统架构图。
具体实施方式
36.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
37.实施例1
38.根据本发明提供的一种基于java的防止父子依赖job执行后数据错乱的方法,如图1所示,包括:
39.步骤s1:对job中间件进行封装,使封装后的job中间件支持父子job依赖;
40.步骤s2:将多项数据check规则通过组id关联配置成组,并包装成数据校验job;
41.步骤s3:job中间件按业务job顺序依次执行业务job,当当前业务job执行成功后,则执行相应的数据校验job,相应的数据校验job执行成功后,下一个业务job继承当前数据校验job,重复执行步骤s3,直至执行结束。
42.具体地,所述封装后的job中间件包括:封装后的job中间件支持父子job多层依赖的配置与执行;
43.所述父子job多层依赖的配置与执行包括:执行父job,在可配置的等待时间后,判断父job执行情况,当父job执行成功,则执行子job;当父job执行失败或执行中时,则不执行子job。
44.具体地,所述封装后的job中间件还包括父子job在依赖关系的基础上,支持job重试,以及支持父job取消,则子job也取消。
45.具体地,所述步骤s2中数据校验job支持通过页面配置数据校验规则和执行顺序
以及支持将多项数据校验规则关联到一个job名,多对一封装成一个job,依次执行数据校验规则。
46.具体地,所述步骤s3包括:任何一项数据校验规则执行失败,则对应job执行失败,并发出告警信息;
47.所述告警信息包括执行失败的校验规则名、期望值和实际值。
48.根据本发明提供的一种基于java的防止父子依赖job执行后数据错乱的系统,如图2所示,包括:
49.模块m1:对job中间件进行封装,使封装后的job中间件支持父子job依赖;
50.模块m2:将多项数据check规则通过组id关联配置成组,并包装成数据校验job;
51.模块m3:job中间件按业务job顺序依次执行业务job,当当前业务job执行成功后,则执行相应的数据校验job,相应的数据校验job执行成功后,下一个业务job继承当前数据校验job,重复触发模块m3执行,直至执行结束。
52.具体地,所述封装后的job中间件包括:封装后的job中间件支持父子job多层依赖的配置与执行;
53.所述父子job多层依赖的配置与执行包括:执行父job,在可配置的等待时间后,判断父job执行情况,当父job执行成功,则执行子job;当父job执行失败或执行中时,则不执行子job。
54.具体地,所述封装后的job中间件还包括父子job在依赖关系的基础上,支持job重试,以及支持父job取消,则子job也取消。
55.具体地,所述模块m2中数据校验job支持通过页面配置数据校验规则和执行顺序以及支持将多项数据校验规则关联到一个job名,多对一封装成一个job,依次执行数据校验规则。
56.具体地,所述模块m3包括:任何一项数据校验规则执行失败,则对应job执行失败,并发出告警信息;
57.所述告警信息包括执行失败的校验规则名、期望值和实际值。
58.实施例2
59.实施例2是实施例1的优选例
60.本发明通过封装,扩展job中间件功能,使之支持父子job依赖;将业务job对应的一套套数据check规则包成job,并支持动态化配置。
61.用户只需配置数据check规则,以及业务job和数据check job的依赖关系,触发时间点和参数,即可灵活规避有先后依赖顺序业务要求的job执行后数据错乱的问题。
62.本发明提供的一种基于java的防止父子依赖job执行后数据错乱的方法,包括:
63.步骤1:对job中间件进行封装,使封装后的job中间件支持父子job依赖。
64.步骤2:将多项数据check规则,通过组id关联配置成组,然后包装成一个数据校验job。
65.步骤3:job中间件按业务job顺序依次执行业务job,当当前业务job执行成功后,则执行相应的数据校验job,相应的数据校验job执行成功后,下一个业务job继承当前数据校验job,重复执行步骤s3,直至执行结束。
66.例如:按业务job顺序,一个业务job1执行成功后,执行数据校验job1,执行成功
后,执行业务job2,执行成功后,执行数据校验job2,......的顺序置配;数据校验job1是业务job1的子job,同时也是业务job2的父job。
67.步骤4:配置各数据校验规则的告警信息。当步骤3涉及的数据校验job执行失败,即发出相关告警信息。。
68.所述步骤1包含如下子步骤:
69.步骤1.1:通过封装,使job中间件支持父子job多层依赖的配置&执行。。
70.步骤1.2:父job执行成功后,支持可配置的等待时间后,执行子job。
71.步骤1.3:在子job到了配置的触发时间点,判断父job执行失败或执行中时,不执行子job。
72.步骤1.4:判断如果父job执行失败,告警提醒。
73.步骤1.5:父子job均可在依赖关系的基础上,支持job重试。
74.步骤1.6:支持父job取消,则子job取消。
75.步骤2包括:将多元化check规则包装成job,扩展性会很灵活。具体包含如下子步骤:
76.步骤2.1:支持通过页面配置sql获取数据a和数据b,通过
‑
*/运算,和>、>=、<、<=、=、!=等逻辑判断,作为数据校验规则,并支持执行顺序的配置。
77.步骤2.2:支持将多项数据校验规则,关联到一个job名,多对一封装成一个job,依次执行数据校验规则。
78.步骤2.3:关联到job中的数据校验规则,前一项执行成功,执行下一项;任何一项数据校验规则执行失败,对应job执行失败,并告警提醒执行失败的校验规则名、期望值、实际值。
79.所述步骤3确保前一个业务job执行后的数据校验均无问题,再执行下一个job,该机制最大程度规避了前一个业务job处理错误的基础上,后续job的处理错上加错的情况。
80.步骤4,支持精准告警,能帮助技术人员第一时间定位到相关某一项数据校验规则未通过,及时而又准确的作出后续补救措施。
81.执行流程说明:
82.配置好数据校验规则和父子job依赖关系后,在到达业务job触发时间,相关业务的最上层父job就会开始并行执行。
83.以业务a job链路举例,正常执行流程如下:
84.业务a job1是业务a的最上层父job。执行成功后,会自动触发业务a数据校验job1执行。
85.业务a数据校验job1执行时,会按前期配置的数据校验规则顺序,依次校验相关数据。
86.业务a数据校验job1中的数据校验规则均校验通过后,会自动触发业务a job2,后续执行流程同业务a job1及业务a数据校验job1。
87.失败的执行流程如下:
88.如果业务a job1执行失败,则会告警,暂停执行。
89.在技术人员排查解决问题后,人工触发重新执行业务a job1。期间,即使到了子job执行时间,只要父job执行失败或还在执行中,子job就会等待不执行。
90.在执行业务a数据校验job1时,任何一项数据校验不通过,均会告警校验不通过的数据校验名称、期望值和实际值,便于支持技术人员第一时间迅速定位问题。在技术人员排查解决问题后,人工触发重新执行业务a数据校验job1。
91.业务b的job链路、业务c的job链路,直到业务m的job链路,执行流程均同业务a的job链路执行流程。多项业务的job链路,只要不相互影响数据处理,即可并行执行,提升处理效率。
92.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
93.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
技术特征:
1.一种基于java的防止父子依赖job执行后数据错乱的方法,其特征在于,包括:步骤s1:对job中间件进行封装,使封装后的job中间件支持父子job依赖;步骤s2:将多项数据check规则通过组id关联配置成组,并包装成数据校验job;步骤s3:job中间件按业务job顺序依次执行业务job,当当前业务job执行成功后,则执行相应的数据校验job,相应的数据校验job执行成功后,下一个业务job继承当前数据校验job,重复执行步骤s3,直至执行结束。2.根据权利要求1所述的基于java的防止父子依赖job执行后数据错乱的方法,其特征在于,所述封装后的job中间件包括:封装后的job中间件支持父子job多层依赖的配置与执行;所述父子job多层依赖的配置与执行包括:执行父job,在可配置的等待时间后,判断父job执行情况,当父job执行成功,则执行子job;当父job执行失败或执行中时,则不执行子job。3.根据权利要求1所述的基于java的防止父子依赖job执行后数据错乱的方法,其特征在于,所述封装后的job中间件还包括父子job在依赖关系的基础上,支持job重试,以及支持父job取消,则子job也取消。4.根据权利要求1所述的基于java的防止父子依赖job执行后数据错乱的方法,其特征在于,所述步骤s2中数据校验job支持通过页面配置数据校验规则和执行顺序以及支持将多项数据校验规则关联到一个job名,多对一封装成一个job,依次执行数据校验规则。5.根据权利要求1所述的基于java的防止父子依赖job执行后数据错乱的方法,其特征在于,所述步骤s3包括:任何一项数据校验规则执行失败,则对应job执行失败,并发出告警信息;所述告警信息包括执行失败的校验规则名、期望值和实际值。6.一种基于java的防止父子依赖job执行后数据错乱的系统,其特征在于,包括:模块m1:对job中间件进行封装,使封装后的job中间件支持父子job依赖;模块m2:将多项数据check规则通过组id关联配置成组,并包装成数据校验job;模块m3:job中间件按业务job顺序依次执行业务job,当当前业务job执行成功后,则执行相应的数据校验job,相应的数据校验job执行成功后,下一个业务job继承当前数据校验job,重复触发模块m3执行,直至执行结束。7.根据权利要求6所述的基于java的防止父子依赖job执行后数据错乱的系统,其特征在于,所述封装后的job中间件包括:封装后的job中间件支持父子job多层依赖的配置与执行;所述父子job多层依赖的配置与执行包括:执行父job,在可配置的等待时间后,判断父job执行情况,当父job执行成功,则执行子job;当父job执行失败或执行中时,则不执行子job。8.根据权利要求6所述的基于java的防止父子依赖job执行后数据错乱的系统,其特征在于,所述封装后的job中间件还包括父子job在依赖关系的基础上,支持job重试,以及支持父job取消,则子job也取消。9.根据权利要求6所述的基于java的防止父子依赖job执行后数据错乱的系统,其特征在于,所述模块m2中数据校验job支持通过页面配置数据校验规则和执行顺序以及支持将
多项数据校验规则关联到一个job名,多对一封装成一个job,依次执行数据校验规则。10.根据权利要求6所述的基于java的防止父子依赖job执行后数据错乱的系统,其特征在于,所述模块m3包括:任何一项数据校验规则执行失败,则对应job执行失败,并发出告警信息;所述告警信息包括执行失败的校验规则名、期望值和实际值。
技术总结
本发明提供了一种基于JAVA的防止父子依赖JOB执行后数据错乱的方法及系统,包括:步骤S1:对Job中间件进行封装,使封装后的Job中间件支持父子Job依赖;步骤S2:将多项数据Check规则通过组ID关联配置成组,并包装成数据校验Job;步骤S3:Job中间件按业务Job顺序依次执行业务Job,当当前业务Job执行成功后,则执行相应的数据校验Job,相应的数据校验Job执行成功后,下一个业务Job继承当前数据校验Job,重复执行步骤S3,直至执行结束。直至执行结束。直至执行结束。
技术研发人员:谢怡珺
受保护的技术使用者:上海万向区块链股份公司
技术研发日:2021.03.23
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-15062.html