CN113742043B - 一种服务器后端任务异步拆分方法 - Google Patents
一种服务器后端任务异步拆分方法 Download PDFInfo
- Publication number
- CN113742043B CN113742043B CN202111014078.5A CN202111014078A CN113742043B CN 113742043 B CN113742043 B CN 113742043B CN 202111014078 A CN202111014078 A CN 202111014078A CN 113742043 B CN113742043 B CN 113742043B
- Authority
- CN
- China
- Prior art keywords
- service
- task
- sub
- splitting
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 58
- 238000012552 review Methods 0.000 claims abstract description 4
- 238000012423 maintenance Methods 0.000 claims description 11
- 238000011835 investigation Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种服务器后端任务异步拆分方法,包括根据业务进行数据库表拆分,将数据库表根据业务分为业务主表和业务子表;构建主线任务消息和子线任务消息;对主线任务进行处理,增加业务中间状态,主线任务消息处理完成时,将主线任务的状态修改为中间处理状态;发送异步消息,调用后续任务,使用定时任务查询处理中的数据信息,调用下游服务提供的结果回查接口更新业务状态;判断是否执行完成所有子线任务,对子线任务执行情况进行汇总,更新业务状态。本发明通过将数据隔离,避免了杂乱的数据库操作,减小服务器压力;提升处理能力,防止信息丢失和信息不同步的情况,缩短业务流程,拆分处理可以任意横向扩展,提升系统性能,增强用户体验。
Description
技术领域
本发明内容涉及计算机技术领域,尤其涉及一种服务器后端任务异步拆分方法。
背景技术
不同类型的业务在主线任务处理完成之后根据类型执行不同的后续任务,后续任务和主线任务是串行关系,如果后续任务失败主线业务也会失败,强行绑定。
现有技术中,从单一业务线逐步发展形成多条业务线任务,由于后续进行服务拆分以及事务一致性问题,引入了Seate的使用,但Seate的使用过程中也存在许多问题,因数据库性能限制,已不能满足大量的高频主任务的处理需求。
Seate使用时强制绑定了服务之间的事务,出现问题时排查比较困难;业务线逐步增多以后,数据库表针对业务特有的字段逐渐增多,造成表结构复杂、杂乱;Seate框架只局限于使用出现问题时解决比较麻烦;业务主线任务后后续任务串行造成处理速度缓慢,同时容易因处理中断,导致重复处理、错漏处理、超时处理等,影响业务进程及用户体验。
因此如何优化服务拆分、处理任务、解决事务一致性的问题成为现有技术中亟需解决的技术问题。
发明内容
本发明内容所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种服务器后端任务异步拆分方法,针对事务一致性问题进行任务拆分,减少业务处理时间,提高业务处理效率。
本发明内容的目的及解决的技术问题是采用以下技术方案来实现的:
一种服务器后端任务异步拆分方法,包括:
根据业务进行数据库表拆分,将数据库表根据业务分为业务主表和业务子表,业务类型明确的,直接迁移数据库表,不明确业务类型的,针对表结构进行拆分,根据业务类型和标识拆分成不同数据库表;
构建主线任务消息和子线任务消息,所述主线任务消息的内容为当前可执行的主线任务,所述子线任务消息的内容为当前可执行主线任务拆分的子线任务;
对主线任务进行处理,增加业务中间状态,所述主线任务消息处理完成时,将所述主线任务的状态修改为中间处理状态;
后续调用下游服务,通过rocket Mq发送异步消息,调用后续任务,使用定时任务查询处理中的数据信息,调用下游服务提供的结果回查接口更新业务状态,所述主线任务执行成功时,更新业务状态为成功,否则不返回最终业务状态;
判断是否执行完成所有子线任务,对所述子线任务执行情况进行汇总,所述子线任务执行情况包括未开始状态和子线任务执行完成状态,汇总后更新业务状态,结束本次任务拆分及子线任务并行执行的处理。
优选的,每个所述数据库表中存储有记账表中的部分业务信息和此业务未生效且独有的信息。
优选的,数据表拆分后,根据数据标识识别和表匹配的业务服务,配置权限允许操作数据库,无权限则需要查询对应查询接口,所述查询接口由此业务服务对外提供。
优选的,所述数据库表还包括附件表,拆分时根据附件类型和标识拆分成不同数据库表。
优选的,所述业务主表独立出一个基础记账表,所述基础记账表用来记录所有生效业务产生的共有简要数据信息,包括但不限于金额、企业信息、业务编号、时间,然后根据不同业务拆分成不同的业务表。
优选的,针对所述下游服务业务处理过程中服务报错导致的处理失败和长时间没有返回最终状态的业务,进行预警通知和运维处理,由运维人员介入重试解决。
优选的,所述子线任务执行成功与否都不会影响整个业务的状态更新,出现失败状态后,展示失败界面,通知运维排查解决。
优选的,所述主线任务中包括记账表处理任务,记账表处理成功或失败关联全部业务,防止业务信息丢失,所述子线任务包括通知类和短信、站内信任务,用来通知其它业务相关服务本子线业务已处理完成。
优选的,后续调用下游服务包括通过线程的方式处理调用后续任务,通过线程池对后续主线任务消息进行处理。
本发明的有益效果包括:
通过将数据隔离,避免了杂乱的数据库操作,根据业务划分数据库表减小服务器压力,代码编写更加简便清晰,减少工作成本;
通过数据库表拆分及任务分级消息队列异步处理和线程处理的方式进行快速处理事务,提升处理能力,缩短问题排查时间,根据事务处理状态及时优化业务;
数据库表根据业务拆分,确保业务及生效信息不会出现丢失和信息不同步的情况;
任务分级可以缩短业务流程,整个拆分处理操作可以任意横向扩展,提升系统性能,增强用户体验。
具体实施方式
下面对本发明内容的技术方案做进一步的详细说明。显然,所描述的实施例仅仅是本发明内容一部分实施例,而不是全部的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明内容保护的范围。
应当理解,尽管这里可以使用术语第一、第二、第三等描述各个元件、组件和/或部分,但这些元件、组件和/或部分不受这些术语限制。
在本实施例中,一种服务器后端任务异步拆分方法,包括以下步骤:
根据业务进行数据库表拆分,将数据库表根据业务分为业务主表和业务子表,业务类型明确的,直接迁移数据库表,不明确业务类型的,针对表结构进行拆分,根据业务类型和标识拆分成不同数据库表;
构建主线任务消息和子线任务消息,所述主线任务消息的内容为当前可执行的主线任务,所述子线任务消息的内容为当前可执行主线任务拆分的子线任务;
对主线任务进行处理,增加业务中间状态,所述主线任务消息处理完成时,将所述主线任务的状态修改为中间处理状态;
在完成第一主线任务处理时提示“业务处理中,稍后查看!”;
后续调用下游服务,通过rocket Mq发送异步消息,调用后续任务,使用定时任务查询处理中的数据信息,调用下游服务提供的结果回查接口更新业务状态,所述主线任务执行成功时,更新业务状态为成功,否则不返回最终业务状态;
判断是否执行完成所有子线任务,对所述子线任务执行情况进行汇总,所述子线任务执行情况包括未开始状态和子线任务执行完成状态,汇总后更新业务状态,结束本次任务拆分及子线任务并行执行的处理。
可以通过监控节点状态,来异步判断所有的子任务是否完成,在判断为没有执行完成所有子线任务的情况下,等待执行完成其他子线任务,并返回进行判断;在判断为所有子线任务执行完成的情况下,发出执行成功的消息,结束本次任务拆分及子线并行执行的处理。
任务分级为主线任务和子线任务,增加中间状态,防止出现A服务处理成功、B服务处理成功、C服务处理失败,而A服务状态更新失败以后B服务等待处理的情况,也避免强行跨服务绑定事务一旦出现网络慢的问题导致客户等待时间长的问题。
子线任务通过分布式应用服务器实现的分布式队列的方式,通过中间控制服务器比对是否执行完了所有的子线任务。
在本实施例中,每个所述数据库表中存储有记账表中的部分业务信息和此业务未生效且独有的信息。
在本实施例中,数据表拆分后,根据数据标识识别和表匹配的业务服务,配置权限允许操作数据库,无权限则需要查询对应查询接口,所述查询接口由此业务服务对外提供。
在本实施例中,不明确业务类型包括业务主表、附件表,所述数据库表还包括附件表,拆分时根据附件类型和标识拆分成不同数据库表。
在本实施例中,所述业务主表独立出一个基础记账表,所述基础记账表用来记录所有生效业务产生的共有简要数据信息,包括但不限于金额、企业信息、业务编号、时间,然后根据不同业务拆分成不同的业务表。
在本实施例中,针对所述下游服务业务处理过程中服务报错导致的处理失败和长时间没有返回最终状态的业务,进行预警通知和运维处理,由运维人员介入重试解决。
在本实施例中,所述子线任务执行成功与否都不会影响整个业务的状态更新,出现失败状态后,展示失败界面,通知运维排查解决。
在本实施例中,所述主线任务中包括记账表处理任务,记账表处理成功或失败关联全部业务,防止业务信息丢失,所述子线任务包括通知类和短信、站内信任务,用来通知其它业务相关服务本子线业务已处理完成。
在本实施例中,后续调用下游服务包括通过线程的方式处理调用后续任务,通过线程池对后续主线任务消息进行处理。
在本实施例中,每个所述数据库表中存储有记账表中的部分业务信息和此业务未生效且独有的信息,应用金融服务系统中,开立业务表中有记账表存的部分信息,也有记账表中没有的额度相关信息。
设置运维模块和预警模块,以实时通知到运维人员第一时间排查问题并重试解决。
本发明的有益效果包括:通过将数据隔离,避免了杂乱的数据库操作,根据业务划分数据库表减小服务器压力,代码编写更加简便清晰,减少工作成本;
通过数据库表拆分及任务分级消息队列异步处理和线程处理的方式进行快速处理事务,提升处理能力,缩短问题排查时间,根据事务处理状态及时优化业务;
数据库表根据业务拆分,确保业务及生效信息不会出现丢失和信息不同步的情况;
任务分级可以缩短业务流程,整个拆分处理速度可以任意横向扩展,提升系统性能,增强用户体验。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (7)
1.一种服务器后端任务异步拆分方法,其特征在于,包括:
根据业务进行数据库表拆分,将数据库表根据业务分为业务主表和业务子表,业务主表独立出一个基础记账表,用来记录所有生效业务产生的共有简要数据信息,包括但不限于金额、企业信息、业务编号、时间,然后根据不同业务拆分成不同的业务表;
业务类型明确的,直接迁移数据库表,不明确业务类型的,针对表结构进行拆分,根据业务类型和标识拆分成不同数据库表,每个数据库表中存储有记账表中的部分业务信息和此业务未生效且独有的信息;
构建主线任务消息和子线任务消息,所述主线任务消息的内容为当前可执行的主线任务,所述子线任务消息的内容为当前可执行主线任务拆分的子线任务;
对主线任务进行处理,增加业务中间状态,所述主线任务消息处理完成时,将所述主线任务的状态修改为中间处理状态;
后续调用下游服务,通过rocket Mq发送异步消息,调用后续任务,使用定时任务查询处理中的数据信息,调用下游服务提供的结果回查接口更新业务状态,所述主线任务执行成功时,更新业务状态为成功,否则不返回最终业务状态;
判断是否执行完成所有子线任务,对所述子线任务执行情况进行汇总,所述子线任务执行情况包括未开始状态和子线任务执行完成状态,汇总后更新业务状态,结束本次任务拆分及子线任务并行执行的处理。
2.根据权利要求1所述的一种服务器后端任务异步拆分方法,其特征在于,数据表拆分后,根据数据标识识别和表匹配的业务服务,配置权限允许操作数据库,无权限则需要查询对应查询接口,所述查询接口由此业务服务对外提供。
3.根据权利要求1所述的一种服务器后端任务异步拆分方法,其特征在于,所述数据库表还包括附件表,拆分时根据附件类型和标识拆分成不同数据库表。
4.根据权利要求1所述的一种服务器后端任务异步拆分方法,其特征在于,针对所述下游服务业务处理过程中服务报错导致的处理失败和长时间没有返回最终状态的业务,进行预警通知和运维处理,由运维人员介入重试解决。
5.根据权利要求1所述的一种服务器后端任务异步拆分方法,其特征在于,所述子线任务执行成功与否都不会影响整个业务的状态更新,出现失败状态后,展示失败界面,通知运维排查解决。
6.根据权利要求1所述的一种服务器后端任务异步拆分方法,其特征在于,所述主线任务中包括记账表处理任务,记账表处理成功或失败关联全部业务,防止业务信息丢失,所述子线任务包括通知类和短信、站内信任务,用来通知其它业务相关服务本子线业务已处理完成。
7.根据权利要求1所述的一种服务器后端任务异步拆分方法,其特征在于,后续调用下游服务包括通过线程的方式处理调用后续任务,通过线程池对后续主线任务消息进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111014078.5A CN113742043B (zh) | 2021-08-31 | 2021-08-31 | 一种服务器后端任务异步拆分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111014078.5A CN113742043B (zh) | 2021-08-31 | 2021-08-31 | 一种服务器后端任务异步拆分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742043A CN113742043A (zh) | 2021-12-03 |
CN113742043B true CN113742043B (zh) | 2024-04-26 |
Family
ID=78734288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111014078.5A Active CN113742043B (zh) | 2021-08-31 | 2021-08-31 | 一种服务器后端任务异步拆分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742043B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301783B (zh) * | 2021-12-31 | 2024-05-28 | 中企云链(北京)金融信息服务有限公司 | 用于微服务的优化方法以及装置、存储介质、电子装置 |
CN115954108B (zh) * | 2023-03-10 | 2023-05-16 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868421A (zh) * | 2016-06-12 | 2016-08-17 | 浪潮通用软件有限公司 | 一种数据管理方法及装置 |
CN107222530A (zh) * | 2017-05-23 | 2017-09-29 | 努比亚技术有限公司 | 服务异步交互方法、设备、系统和可读介质 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN109241186A (zh) * | 2018-08-29 | 2019-01-18 | 深圳市小牛在线互联网信息咨询有限公司 | 分布式事务的管理方法、系统、计算机设备及存储介质 |
CN112671827A (zh) * | 2020-11-25 | 2021-04-16 | 紫光云技术有限公司 | 一种分布式事务最终一致性方法 |
WO2021155496A1 (en) * | 2020-02-04 | 2021-08-12 | Honeywell International Inc. | Transaction based processing using asynchronous microservices |
-
2021
- 2021-08-31 CN CN202111014078.5A patent/CN113742043B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868421A (zh) * | 2016-06-12 | 2016-08-17 | 浪潮通用软件有限公司 | 一种数据管理方法及装置 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN107222530A (zh) * | 2017-05-23 | 2017-09-29 | 努比亚技术有限公司 | 服务异步交互方法、设备、系统和可读介质 |
CN109241186A (zh) * | 2018-08-29 | 2019-01-18 | 深圳市小牛在线互联网信息咨询有限公司 | 分布式事务的管理方法、系统、计算机设备及存储介质 |
WO2021155496A1 (en) * | 2020-02-04 | 2021-08-12 | Honeywell International Inc. | Transaction based processing using asynchronous microservices |
CN112671827A (zh) * | 2020-11-25 | 2021-04-16 | 紫光云技术有限公司 | 一种分布式事务最终一致性方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113742043A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113742043B (zh) | 一种服务器后端任务异步拆分方法 | |
EP2600246B1 (en) | Batch processing of business objects | |
CN108076098B (zh) | 一种业务处理方法及系统 | |
US8938421B2 (en) | Method and a system for synchronizing data | |
CN101364217B (zh) | 数据库中数据维护方法、设备及其系统 | |
CN103559245A (zh) | 一种分布式事务提交故障的处理方法、装置和系统 | |
CN111061748A (zh) | 一种热点账户的记账方法及装置 | |
CN113157710B (zh) | 区块链数据并行写入方法、装置、计算机设备及存储介质 | |
CN102355499A (zh) | 云计算系统 | |
CN112905613A (zh) | 一种异构数据库的数据双向同步方法及装置 | |
CN110427427B (zh) | 一种通过引脚桥接实现全局事务分布式处理方法 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN111124370A (zh) | 一种数据处理方法及相关设备 | |
CN111192029A (zh) | 一种多业务平台交互处理系统及方法 | |
CN114066476A (zh) | 一种解决分布式应用交易后发先至的方法、装置及存储介质 | |
CN115208834A (zh) | 一种基于数据库存储过程设计的服务流量限制方法 | |
CN114844907A (zh) | 一种基于mq异步收发的银行交易高速低连接数实现方法 | |
CN109901933B (zh) | 业务系统的操作方法及装置、存储介质、电子装置 | |
CN109635040B (zh) | 实时数据迁移方法、装置及存储介质 | |
CN103685350B (zh) | 存储系统的同步方法及相关的设备 | |
CN107102901A (zh) | 一种任务处理方法和装置 | |
CN110942372A (zh) | 一种业务端与erp系统的对接方法及网关 | |
CN114138714B (zh) | 数据迁移的方法、装置、存储介质及电子设备 | |
CN117331954A (zh) | 一种解决数据不一致的方法 | |
US10599674B1 (en) | Apparatus and method for replicating data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 100078 4th floor, CRRC building, building 15, fangchengyuan 1st District, Fengtai District, Beijing Applicant after: China Enterprise Cloud Chain Co.,Ltd. Address before: 100078 4th floor, CRRC building, building 15, fangchengyuan 1st District, Fengtai District, Beijing Applicant before: ZHONGQI SCC (BEIJING) FINANCE INFORMATION SERVICE Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |