CN116775314A - 异步处理方法、装置和设备 - Google Patents
异步处理方法、装置和设备 Download PDFInfo
- Publication number
- CN116775314A CN116775314A CN202311041930.7A CN202311041930A CN116775314A CN 116775314 A CN116775314 A CN 116775314A CN 202311041930 A CN202311041930 A CN 202311041930A CN 116775314 A CN116775314 A CN 116775314A
- Authority
- CN
- China
- Prior art keywords
- target
- service
- asynchronous
- processing
- target service
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 224
- 238000000034 method Methods 0.000 claims abstract description 70
- 238000013507 mapping Methods 0.000 claims abstract description 62
- 230000008569 process Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 9
- 230000006978 adaptation Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/2291—User-Defined Types; Storage 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种异步处理方法、装置和设备,涉及数据处理技术领域,该方法包括:确定需要进行异步处理的目标业务;将目标业务存储至目标数据库中;根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。本发明的方法有效的提升了数据异步处理的效率和准确性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种异步处理方法、装置和设备。
背景技术
当业务系统中有大量的业务数据需要处理时,现有的方式是基于用户在页面的操作,需要等待业务处理完毕后,才能进行下一步操作,这样就导致体验比较差,处理时间较长,所有的数据都是串行执行,效率非常低,无法满足性能上的需求。
相关技术中,通过引入消息队列和定时任务进行数据的异步处理,但对于安全性要求较高的场景无法进行消息队列中间件的部署;另外消息队列中间件的维护成本昂贵,消息队列中间件的适配要耗费大量的人力和物力,且基于消息队列进行异步处理的过程中不支持重试、各个数据异步执行的顺序也无法进行优化和调整,导致基于消息队列的方式进行数据异步处理的效率较低。
发明内容
针对现有技术中的问题,本发明实施例提供一种异步处理方法、装置和设备。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种异步处理方法,包括:
确定需要进行异步处理的目标业务;
将目标业务存储至目标数据库中;
根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。
进一步地,根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务,包括:
根据目标业务的业务类型和预设的目标映射关系,确定异步执行的目标业务所对应的目标业务处理类;
根据目标业务处理类对目标数据库中的目标业务进行异步处理。
进一步地,根据目标业务处理类对目标数据库中的目标业务进行异步处理,包括:
在目标数据库中存储多个需要进行异步处理的目标业务的情况下,调整各个目标业务的执行顺序;
根据各个目标业务的执行顺序和各个目标业务所对应的目标业务处理类,对目标数据库中的各个目标业务进行异步处理。
进一步地,在对目标数据库中的目标业务进行异步处理失败后,还包括:
根据预设的最大异步执行重复次数,对目标业务进行重复执行。
进一步地,基于预设的多个业务处理类的功能,建立业务类型和业务处理类的映射关系。
进一步地,将目标业务存储至目标数据库中之后,还包括:
设置目标业务的异步执行状态;
在对目标数据库中的目标业务进行异步处理过程中,更新目标业务的异步执行状态;
在对目标数据库中的目标业务进行异步处理后,根据目标业务的异步执行结果,更新目标业务的异步执行状态。
进一步地,将目标业务存储至目标数据库中,包括以下至少一项:
将目标业务的标识信息写入目标数据库中的异步执行对象的第一字段中;
将目标业务的类型信息写入目标数据库中的异步执行对象的第二字段中;
将目标业务的参数信息写入目标数据库中的异步执行对象的第三字段中;
将目标业务的异步执行状态写入目标数据库中的异步执行对象的第四字段中;
将目标业务的允许最大重试次数写入目标数据库中的异步执行对象的第五字段中。
第二方面,本发明实施例还提供了一种异步处理装置,包括:
确定模块,用于确定需要进行异步处理的目标业务;
处理模块,用于将目标业务存储至目标数据库中;
异步执行模块,根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述异步处理方法。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述异步处理方法。
第五方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述异步处理方法。
本发明实施例提供的异步处理方法、装置和设备,通过将需要异步处理的目标业务存储至目标数据库,并根据目标业务的业务类型和预设的目标映射关系,确定目标业务对应的业务处理类,进而基于业务处理类也就可以实现对目标业务的准确高效的异步处理。本申请实施例的方法不借助其他中间件,相较于利用消息队列中间件进行异步处理的方式,一方面解决了消息队列中间件无法在安全性能高的场景部署及使用的问题;第二方面也解决了消息队列中间件维护成本高的问题,避免了消息队列中间件的适配耗费大量的人力和物力的问题;第三方面,也规避了消息队列中间件的学习成本;第四方面,本申请实施例的方法相较于基于消息队列方式进行异步处理时的性能提升巨大,有效的提升了数据异步处理的效率和准确性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的异步处理方法的流程示意图;
图2是本发明实施例提供的异步处理方法的另一流程示意图;
图3是本发明实施例提供的异步处理装置的结构示意图;
图4是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的方法可以应用于数据异步处理的场景中,有效的提升了数据异步处理的效率和准确性。
相关技术中,通过引入消息队列和定时任务进行数据的异步处理,但对于安全性要求较高的场景无法进行消息队列中间件的部署;另外消息队列中间件的维护成本昂贵,消息队列中间件的适配要耗费大量的人力和物力,且基于消息队列进行异步处理的过程中不支持重试、各个数据异步执行的顺序也无法进行优化和调整,导致基于消息队列的方式进行数据异步处理的效率较低。
本发明实施例的异步处理方法,通过将需要异步处理的目标业务存储至目标数据库,并根据目标业务的业务类型和预设的目标映射关系,确定目标业务对应的业务处理类,进而基于业务处理类也就可以实现对目标业务的准确高效的异步处理。本申请实施例的方法不借助其他中间件,相较于利用消息队列中间件进行异步处理的方式,一方面解决了消息队列中间件无法在安全性能高的场景部署及使用的问题;第二方面也解决了消息队列中间件维护成本高的问题,避免了消息队列中间件的适配耗费大量的人力和物力的问题;第三方面,也规避了消息队列中间件的学习成本;第四方面,本申请实施例的方法相较于基于消息队列方式进行异步处理时的性能提升巨大,有效的提升了数据异步处理的效率和准确性。
为了便于更加清晰地理解本申请各实施例的技术方案,首先对本申请各实施例相关的一些技术内容进行介绍。
消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。
消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。
“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。
消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。
下面结合图1-图4以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本发明实施例提供的异步处理方法一实施例的流程示意图。如图1所示,本实施例提供的方法,包括:
步骤101、确定需要进行异步处理的目标业务;
具体地,相关技术中,通过引入消息队列和定时任务进行数据的异步处理,但对于安全性要求较高的场景无法进行消息队列中间件的部署;另外消息队列中间件的维护成本昂贵,消息队列中间件的适配要耗费大量的人力和物力,且基于消息队列进行异步处理的过程中不支持重试、各个数据异步执行的顺序也无法进行优化和调整,导致基于消息队列的方式进行数据异步处理的效率较低。
为了解决上述问题,本发明实施例在进行业务数据的处理过程中,首先确定需要进行异步处理的目标业务;可续地,异步处理的目标业务可以是一项或多项,本发明实施例中不做具体限制。
步骤102、将目标业务存储至目标数据库中;
具体地,在确定需要进行异步处理的目标业务后,本申请实施例中将目标业务存储至目标数据库中。可选地,目标数据库的类型可以为MYSQL、金仓、达梦数据库,也可以是其他类型的数据库,本发明实施例中不做具体限制。
步骤103、根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。
具体地,在确定需要进行异步处理的目标业务,并将需要异步处理的目标业务存储至目标数据库后,本申请实施例中根据目标业务的业务类型和预设的目标映射关系,确定目标业务对应的业务处理类,进而基于业务处理类也就可以对目标业务进行异步处理。可选地,目标映射关系包括业务类型和业务处理类的映射关系,进而根据目标业务的类型和业务处理类的映射关系,也就可以准确高效地确定需要异步处理的目标业务所对应的业务处理类,从而基于确定出的业务处理类也就可以达到准确高效的对目标业务进行异步处理的效果。可选地,业务处理类可以是基于JAVA编程技术得到的,也可以基于其他类型的编程技术得到的,本发明实施例中不做具体限制。可选地,业务处理类用于对目标业务进行处理,以获得目标业务的处理结果。例如目标业务的业务类型为邮件类型,则可以基于业务处理类集合中的邮件业务处理类对目标业务进行处理,基于目标业务中的参数确定收件人信息及邮件发送时间信息,异步执行目标业务,向目标收件人进行邮件的发送。
需要说明的是,本申请实施例中的异步处理方法,通过将需要异步处理的目标业务存储至目标数据库,并根据目标业务的业务类型和预设的目标映射关系,确定目标业务对应的业务处理类,进而基于业务处理类也就可以实现对目标业务的准确高效的异步处理;也就是以数据库作为异步存储的中间存储层,不需要引入消息队列,避免了引入消息队列带来的学习成本以及安全风险,使用方只需要根据接口协议添加自己的业务处理类,并完成业务类型到业务处理类的定义,就可以进行异步处理,使用起来非常方便,即使在已有业务上进行修改,改动量也比较小;另外本申请实施例中的异步处理方法还支持分布式部署,可以让业务处理效率快速提升,所有的非业务逻辑操作环节都由异步处理程序进行完成,包括错误重试机制、恢复机制、数据抓取机制等,用户只需要关注业务本身,而且支持市面上大多数关系型数据库,只需要有事务能力即可,从而也就提升了异步处理方法应用的范围和通用性;而且本申请的异步执行方法所需要的系统资源较少,无需额外增加单独的资源来部署,与业务同步部署,在节约成本的同时,有新的功能可以同步升级,使得异步处理方法更加的灵活和高效。
上述实施例的方法,通过将需要异步处理的目标业务存储至目标数据库,并根据目标业务的业务类型和预设的目标映射关系,确定目标业务对应的业务处理类,进而基于业务处理类也就可以实现对目标业务的准确高效的异步处理。本申请实施例的方法不借助其他中间件,相较于利用消息队列中间件进行异步处理的方式,一方面解决了消息队列中间件无法在安全性能高的场景部署及使用的问题;第二方面也解决了消息队列中间件维护成本高的问题,避免了消息队列中间件的适配耗费大量的人力和物力的问题;第三方面,也规避了消息队列中间件的学习成本;第四方面,本申请实施例的方法相较于基于消息队列方式进行异步处理时的性能提升巨大,有效的提升了数据异步处理的效率和准确性。
在一实施例中,根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务,包括:
根据目标业务的业务类型和预设的目标映射关系,确定异步执行的目标业务所对应的目标业务处理类;
根据目标业务处理类对目标数据库中的目标业务进行异步处理。
具体地,本申请实施例中目标映射关系包括业务类型和业务处理类的映射关系,因而在确定需要异步执行的目标业务的业务类型后,就可以将定需要异步执行的目标业务的业务类型和目标映射关系中的业务类型进行匹配和关联,从而准确快速的获取与需要异步执行的目标业务的业务类型相对应的业务处理类,进而基于确定出的业务处理类对需要异步执行的目标业务进行异步处理,也就可以有效的提升数据异步处理的效率和准确性。
例如,需要异步执行的目标业务的业务类型为邮件类型,则可以将目标业务的业务类型与目标映射关系中的业务类型进行匹配和关联,在通过关联确定目标业务的业务类型相对应的业务处理类为邮件业务处理类后,就可以通过邮件业务处理类异步执行目标业务,向目标收件人进行邮件的发送。其中,业务处理类可以是基于JAVA编程技术得到的,也可以基于其他类型的编程技术得到,本发明实施例中不做具体限制。
上述实施例的方法,在确定需要异步执行的目标业务的类型后,就可以将确定出的需要异步执行的目标业务的业务类型和目标映射关系中的业务类型进行匹配和关联,从而准确快速的获取与需要异步执行的目标业务的业务类型相对应的业务处理类,进而基于确定出的业务处理类对目标业务进行异步处理,有效的提升了数据异步处理的效率和准确性。
在一实施例中,根据目标业务处理类对目标数据库中的目标业务进行异步处理,包括:
在目标数据库中存储多个需要进行异步处理的目标业务的情况下,调整各个目标业务的执行顺序;
根据各个目标业务的执行顺序和各个目标业务所对应的目标业务处理类,对目标数据库中的各个目标业务进行异步处理。
具体地,相关技术中,在基于消息队列中间件进行数据异步处理的过程中,不仅消息队列中间件的维护成本昂贵,消息队列中间件的适配要耗费大量的人力和物力,而且基于消息队列进行异步处理的过程中不支持重试、各个数据异步执行的顺序也无法进行优化和调整,导致基于消息队列的方式进行数据异步处理的效率较低。
为了解决上述问题,本发明实施例中通过将需要异步处理的目标业务存储至目标数据库,并根据目标业务的业务类型和预设的目标映射关系,确定目标业务对应的业务处理类,进而基于业务处理类也就可以实现对目标业务的准确高效的异步处理;而且基于本申请的异步处理方法,在目标数据库中存储多个需要异步处理的目标业务的情况下,可以基于实际的业务需求或者预设的规则,调整各个需要异步处理的目标业务的执行顺序,而不只是固定的按照各个目标业务存入目标数据库的顺序进行目标业务的异步执行,克服了基于消息队列进行异步处理的过程中各个数据异步执行的顺序无法进行优化和调整的问题,从而使得多个目标业务的异步处理更加的灵活和高效。
例如,需要异步执行的目标业务A存入目标数据库的时间为第一时刻,需要异步执行的目标业务B存入目标数据库的时间为第二时刻,第二时刻晚于第一时刻。则可以依照各个目标业务存入数据库时间的先后顺序,先异步执行目标业务A,再异步执行目标业务B;也可以基于实际需求调整目标业务的异步执行顺序,例如,在目标业务B的紧急程度高于目标业务A的紧急程度的情况下,则可以调整为先异步执行目标业务B,再异步执行目标业务A,克服了基于消息队列进行异步处理的过程中各个数据异步执行的顺序无法进行优化和调整的问题。
上述实施例的方法,在目标数据库中存储多个需要异步处理的目标业务的情况下,可以基于实际的业务需求或者预设的规则,调整各个需要异步处理的目标业务的执行顺序,而不只是固定的按照各个目标业务存入目标数据库的顺序进行目标业务的异步执行,克服了基于消息队列进行异步处理的过程中各个数据异步执行的顺序无法进行优化和调整的问题,从而使得多个目标业务的异步处理更加的灵活和高效。
在一实施例中,在对目标数据库中的目标业务进行异步处理失败后,还包括:
根据预设的最大异步执行重复次数,对目标业务进行重复执行。
具体地,相关技术中,在基于消息队列中间件进行数据异步执行的过程中,不仅消息队列中间件的维护成本昂贵,消息队列中间件的适配要耗费大量的人力和物力,而且基于消息队列进行异步处理的过程中不支持重试,也就是在发生由于系统等原因导致目标业务异步执行失败的情况下,基于消息队列的异步执行方式是不支持对异步执行失败的目标业务进行再次重新尝试执行的,从而使得异步执行的成功率和灵活度较低。
为了解决上述问题,本发明实施例中通过将需要异步处理的目标业务存储至目标数据库,并根据目标业务的业务类型和预设的目标映射关系,确定目标业务对应的业务处理类,进而基于业务处理类也就可以实现对目标业务的准确高效的异步处理;而且基于本申请的异步处理方式,在目标业务异步执行失败后,可以根据预设的最大异步执行重复次数,对目标业务重复进行异步处理,从而提高异步执行的成功率。可选地,最大异步执行重复次数可以根据实际需求进行设定,本发明实施例中不做限定。可选地,在目标业务异步执行失败的情况下,可以更新目标业务的异步执行状态为执行失败,并且更新目标业务的异步执行重试次数,并且在目标业务重试执行成功后,更新目标业务的异步执行状态为执行成功,实现对异步执行流程的有效监控。
上述实施例的方法,在目标业务异步执行失败后,可以根据预设的最大异步执行重复次数,对目标业务再次重新进行异步处理,并且同步更新目标业务的异步执行状态和目标业务的异步执行重试次数,克服了基于消息队列进行异步处理的过程中目标业务异步执行失败后无法重试的问题,从而使得基于本申请中的异步处理方法在进行多个目标业务的异步处理时更加的灵活和高效,也可以提升异步处理的成功率。
在一实施例中,基于预设的多个业务处理类的功能,建立业务类型和业务处理类的映射关系。
具体地,在进行目标业务的异步执行之前,可以基于预设的多个业务处理类的功能,建立业务类型和业务处理类的映射关系,进而通过建立的映射关系也就可以准确的确定各个目标业务需要通过哪项业务处理类进行处理,从而在目标业务的异步执行过程中,可以有效的提升目标业务执行的效率和准确性。其中,业务处理类可以是基于JAVA编程技术得到的,也可以基于其他类型的编程技术得到,本发明实施例中不做具体限制。可选地,业务处理类用于对目标业务进行处理,以获得目标业务的处理结果。例如,目标业务的类型为邮件类型,则对应的业务处理类邮件处理类,通过邮件处理类可以异步执行邮件的发送;目标业务的类型为短信提醒类型,则对应的业务处理类短信提醒处理类,通过短信提醒处理类可以异步执行通知短信的发送。
上述实施例的方法,通过建立业务类型和业务处理类的映射关系,进而通过建立的映射关系可以准确的确定各个目标业务需要通过哪项业务处理类进行处理,从而在目标业务的异步执行过程中,可以有效的提升目标业务执行的效率和准确性。
在一实施例中,将目标业务存储至目标数据库中之后,还包括:
设置目标业务的异步执行状态;
在对目标数据库中的目标业务进行异步处理过程中,更新目标业务的异步执行状态;
在对目标数据库中的目标业务进行异步处理后,根据目标业务的异步执行结果,更新目标业务的异步执行状态。
具体地,在将目标业务存储至目标数据库中之后,为了准确的获取和确定目标业务异步执行的状态和结果,本发明实施例中对存储在目标数据库中的目标业务设置初始的异步执行状态为待执行;在对目标数据库中的目标业务进行异步处理过程中,更新目标业务的异步执行状态为执行中;在对目标数据库中的目标业务进行异步处理后,根据目标业务的异步执行结果,更新目标业务的异步执行状态;可选地,在目标业务异步执行成功的情况下,更新目标业务的异步执行状态为异步执行成功;在目标业务异步执行失败的情况下,更新目标业务的异步执行状态为异步执行失败。从而基于更新后的目标业务的异步执行状态可以准确的确定目标业务是否已进行异步执行,也就可以有效的监控各项目标业务的异步执行进度,提升目标业务的异步执行流程的管理效率。
上述实施例的方法,通过对存储在目标数据库中的目标业务设置初始的异步执行状态;并在目标业务进行异步处理过程中、目标业务进行异步处理后及时的更新目标业务的异步执行状态,从而可以有效的监控各项目标业务的异步执行进度,提升目标业务的异步执行流程的管理效率。
在一实施例中,将目标业务存储至目标数据库中,包括以下至少一项:
将目标业务的标识信息写入目标数据库中的异步执行对象的第一字段中;
将目标业务的类型信息写入目标数据库中的异步执行对象的第二字段中;
将目标业务的参数信息写入目标数据库中的异步执行对象的第三字段中;
将目标业务的异步执行状态写入目标数据库中的异步执行对象的第四字段中;
将目标业务的允许最大重试次数写入目标数据库中的异步执行对象的第五字段中。
具体地,本发明实施例在将需要异步执行的目标业务存储至目标数据库的过程中,还会将与目标业务异步执行相关的信息写入目标数据库中的异步执行对象中,从而使得在目标业务的异步执行过程中,可以基于更加全面丰富的信息,更加准确灵活的进行目标业务的执行。
可选地,本申请实施例在将需要异步执行的目标业务存储至目标数据库的过程中,同步将目标业务的标识信息写入目标数据库中的异步执行对象的第一字段中,从而在存在多个需要异步执行的目标业务的情况下可以基于标识信息实现对各个目标业务的标识,进而基于目标业务的标识信息可以找到对应的目标业务以及与目标业务异步执行相关的信息。
可选地,在将需要异步执行的目标业务存储至目标数据库的过程中,同步将目标业务的类型信息写入目标数据库中的异步执行对象的第二字段中,从而基于目标业务的类型信息也就可以准确的确定目标业务对应的业务处理类,进而基于确定出的业务处理类也就可以准确高效的对需要异步处理的目标业务进行异步处理。
可选地,在将需要异步执行的目标业务存储至目标数据库的过程中,同步将目标业务的参数信息写入目标数据库中的异步执行对象的第三字段中,从而也就使得业务处理类可以准确的获取目标业务处理相关的参数信息,例如获取目标业务异步处理的时间等信息。
可选地,在将需要异步执行的目标业务存储至目标数据库的过程中,同步将目标业务的异步执行状态写入目标数据库中的异步执行对象的第四字段中,并根据目标业务的异步执行进度和执行结果,更新目标业务的异步执行状态,从而可以有效的监控各项目标业务的异步执行进度,提升目标业务的异步执行流程的管理效率。
可选地,在将需要异步执行的目标业务存储至目标数据库的过程中,同步将目标业务的允许最大重试次数写入目标数据库中的异步执行对象的第五字段中,从而也就可以确定是否需要继续对异步执行失败的目标业务进行重试,从而提高目标业务异步执行的效率和成功率,克服基于消息队列进行异步处理的过程中目标业务异步执行失败后无法重试的问题。
上述实施例的方法,在将需要异步执行的目标业务存储至目标数据库的过程中,还会将与目标业务异步执行相关的信息写入目标数据库中的异步执行对象中,从而使得在目标业务的异步执行过程中,可以基于更加全面丰富的信息,更加准确灵活的进行目标业务的执行。
示例性的,本申请中的异步执行方法的流程示意图如图2所示,具体如下:
使用java语言编写核心逻辑,使用关系型数据库作为数据存储层,支持主流数据库,例如MYSQL、金仓、达梦数据库,通过maven进行模块集成,支持SpringBoot以及其他JAVA应用启动。
(1)业务初始化
业务初始化主要用于原本业务点的异步化,需要将必要的参数信息添加到addt字段中,其中addt字段预留了三个参数,分别为addt1、addt2、addt3,可以自行写入常规数据,或者根据需要写入JSON格式数据。bizType字段用来标识所属的业务类型,也是为了后续找到处理当前业务的业务类。bizNo字段为业务主键,方便应用对当前业务数据进行查询,为了避免业务主键无法确定所属的业务点,字段biz用来做额外标记,分别为biz1、biz2、biz3。首先会进行配置信息的读取,读取的数据有可能是来源于mysql,也有可能是来源于其他类型数据库,为了方便处理,需要将单条数据以map结构operationIp用来记录处理当前业务的节点Ip。createTime字段用来标识创建异步数据的时间信息,status字段用来区分业务状态,值为0时,表示待处理,值为1时,表示正在处理,值为2时,表示处理完成,值为3时,表示处理失败。字段times表示处理失败的次数,需要根据开关来确定是否需要再次处理,以及根据配置中提供的允许最大重试次数,来决定是否已经达到了最大处理次数。新增一条异步数据时,status为0,表名称为ASYN_TABLE。
例如,数据符合业务时,需要对数据进行告警处理,其中业务主键为123,参数为pointNum,值为1,参数还有rtuid,值为2,那么构造成AsynTable对象,bizNo为123,addt1为1,addt2为2,status为0,bizType为alarmType,status为0,将AsynTable对象新增到数据库中。
(2)分发业务数据
异步程序启动前,需要配置bizType和业务处理类的映射,以及当前ip信息,每次抓取的最大数据量,出错后是否需要重试,重试的次数信息,业务处理类需要实现公用接口,重写execute方法,方法中只有一个参数对象,即AsynTable。在执行时将启动主线程,主线程中会自行维护一个线程池,并根据实际业务情况来调整线程池中线程的最大值以及回收线程。
异步程序启动后,将读取业务处理类和bizType的映射放入缓存中,并从数据库中读取AsynTable表中状态为异常或正在处理的数据(值为3或者1),避免异步程序突然宕机等情况。接着再根据最大抓取数据,查询出状态为待处理的数据。将这些待处理的数据分别处理,先修改为正在处理,如果发现正在处理的数据变更时影响的行数为0,则表示当前数据不存在或者被其他异步线程优先处理了,那么就放弃当前数据。成功修改为待处理的数据,就完成了数据的锁定。
(3)业务数据处理
异步程序将分配一个线程,来执行业务类的处理。此线程会根据bizType来查找缓存中的处理类,并将AsynTable对象放到参数中。处理类将根据实际业务获取参数信息,如果为JSON格式,需要自行进行JSON格式解析操作。处理类完成自己的业务逻辑后,数据即完成处理。
(4)业务结束
当数据处理完成后,如果期间未发生错误,将处理的异步数据状态修改为已完成(值为2),并复制当前数据到ASYN_TABLE_BAK表中,同时删除ASYN_TABLE数据。如果处理发生错误,将会记录异常堆栈信息到字段error中,同时查找配置文件中是否开启错误重试,如果开始,将times字段进行自增1,同时修改状态为待处理(值为0),进行下一轮操作。如果times已经大于最大可重试次数,状态将修改为异常(值为3)。后续可由技术人员根据error列提供的错误信息,包括日志情况等,判断业务处理类是否存在问题,待完成修改后,再统一修改状态为待处理(值为0),完成业务操作。
上述实施例的方法,有效的取代了消息队列与定时任务结合进行异步执行的方式,并且支持多种关系数据库适配,充分考虑了性能以及稳定性,可用于分布式部署,并提供错误追踪机制,应用集成起来简单,学习成本较低,不需要额外的对接消息队列以及定时任务处理。将常用的处理流程规范化起来,简化了各应用独自开发的人力、物力、财力成本。
下面对本发明提供的异步处理装置进行描述,下文描述的异步处理装置与上文描述的异步处理方法可相互对应参照。
图3是本发明提供的异步处理装置的结构示意图。本实施例提供的异步处理装置,包括:
确定模块310,用于确定需要进行异步处理的目标业务;
处理模块320,用于将目标业务存储至目标数据库中;
异步执行模块330,根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。
可选地,所述异步执行模块330,具体用于:根据目标业务的业务类型和预设的目标映射关系,确定异步执行的目标业务所对应的目标业务处理类;
根据目标业务处理类对目标数据库中的目标业务进行异步处理。
可选地,所述异步执行模块330,具体用于:在目标数据库中存储多个需要进行异步处理的目标业务的情况下,调整各个目标业务的执行顺序;
根据各个目标业务的执行顺序和各个目标业务所对应的目标业务处理类,对目标数据库中的各个目标业务进行异步处理。
可选地,在对目标数据库中的目标业务进行异步处理失败后,所述异步执行模块330,还用于:
根据预设的最大异步执行重复次数,对目标业务进行重复执行。
可选地,所述异步执行模块330,具体用于:基于预设的多个业务处理类的功能,建立业务类型和业务处理类的映射关系。
可选地,所述处理模块320,具体用于:设置目标业务的异步执行状态;
在对目标数据库中的目标业务进行异步处理过程中,更新目标业务的异步执行状态;
在对目标数据库中的目标业务进行异步处理后,根据目标业务的异步执行结果,更新目标业务的异步执行状态。
可选地,所述处理模块320,具体用于:将目标业务的标识信息写入目标数据库中的异步执行对象的第一字段中;
将目标业务的类型信息写入目标数据库中的异步执行对象的第二字段中;
将目标业务的参数信息写入目标数据库中的异步执行对象的第三字段中;
将目标业务的异步执行状态写入目标数据库中的异步执行对象的第四字段中;
将目标业务的允许最大重试次数写入目标数据库中的异步执行对象的第五字段中。
本发明实施例的装置,其用于执行前述任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
图4示例了一种电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行异步处理方法,该方法包括:确定需要进行异步处理的目标业务;将目标业务存储至目标数据库中;根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的异步处理方法,该方法包括:确定需要进行异步处理的目标业务;将目标业务存储至目标数据库中;根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的异步处理方法,该方法包括:确定需要进行异步处理的目标业务;将目标业务存储至目标数据库中;根据目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的目标业务;目标映射关系包括业务类型和业务处理类的映射关系。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种异步处理方法,其特征在于,包括:
确定需要进行异步处理的目标业务;
将所述目标业务存储至目标数据库中;
根据所述目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的所述目标业务;所述目标映射关系包括业务类型和业务处理类的映射关系。
2.根据权利要求1所述的异步处理方法,其特征在于,所述根据所述目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的所述目标业务,包括:
根据所述目标业务的业务类型和预设的目标映射关系,确定异步执行的所述目标业务所对应的目标业务处理类;
根据所述目标业务处理类对目标数据库中的所述目标业务进行异步处理。
3.根据权利要求2所述的异步处理方法,其特征在于,所述根据所述目标业务处理类对目标数据库中的所述目标业务进行异步处理,包括:
在所述目标数据库中存储多个需要进行异步处理的目标业务的情况下,调整各个目标业务的执行顺序;
根据各个目标业务的执行顺序和各个目标业务所对应的目标业务处理类,对目标数据库中的各个所述目标业务进行异步处理。
4.根据权利要求3所述的异步处理方法,其特征在于,在对目标数据库中的所述目标业务进行异步处理失败后,还包括:
根据预设的最大异步执行重复次数,对所述目标业务进行重复执行。
5.根据权利要求4所述的异步处理方法,其特征在于,还包括:
基于预设的多个业务处理类的功能,建立业务类型和业务处理类的映射关系。
6.根据权利要求5所述的异步处理方法,其特征在于,将所述目标业务存储至目标数据库中之后,还包括:
设置所述目标业务的异步执行状态;
在对目标数据库中的所述目标业务进行异步处理过程中,更新所述目标业务的异步执行状态;
在对目标数据库中的所述目标业务进行异步处理后,根据目标业务的异步执行结果,更新所述目标业务的异步执行状态。
7.根据权利要求6所述的异步处理方法,其特征在于,所述将所述目标业务存储至目标数据库中,包括以下至少一项:
将所述目标业务的标识信息写入目标数据库中的异步执行对象的第一字段中;
将所述目标业务的类型信息写入目标数据库中的异步执行对象的第二字段中;
将所述目标业务的参数信息写入目标数据库中的异步执行对象的第三字段中;
将所述目标业务的异步执行状态写入目标数据库中的异步执行对象的第四字段中;
将所述目标业务的允许最大重试次数写入目标数据库中的异步执行对象的第五字段中。
8.一种异步处理装置,其特征在于,包括:
确定模块,用于确定需要进行异步处理的目标业务;
处理模块,用于将所述目标业务存储至目标数据库中;
异步执行模块,根据所述目标业务的业务类型和预设的目标映射关系,异步执行目标数据库中的所述目标业务;所述目标映射关系包括业务类型和业务处理类的映射关系。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的异步处理方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的异步处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311041930.7A CN116775314A (zh) | 2023-08-18 | 2023-08-18 | 异步处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311041930.7A CN116775314A (zh) | 2023-08-18 | 2023-08-18 | 异步处理方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775314A true CN116775314A (zh) | 2023-09-19 |
Family
ID=88011921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311041930.7A Pending CN116775314A (zh) | 2023-08-18 | 2023-08-18 | 异步处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775314A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598705A (zh) * | 2015-10-15 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种异步任务的调度方法、装置、系统以及电子设备 |
CN108427599A (zh) * | 2017-09-30 | 2018-08-21 | 平安科技(深圳)有限公司 | 异步任务统一处理方法、装置及存储介质 |
US20220058181A1 (en) * | 2020-08-20 | 2022-02-24 | Shanghai Icekredit, Inc. | Distributed transaction processing method and system based on message queue and database |
CN115964153A (zh) * | 2023-01-19 | 2023-04-14 | 中国农业银行股份有限公司 | 一种异步任务处理方法、装置、设备以及存储介质 |
-
2023
- 2023-08-18 CN CN202311041930.7A patent/CN116775314A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598705A (zh) * | 2015-10-15 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种异步任务的调度方法、装置、系统以及电子设备 |
CN108427599A (zh) * | 2017-09-30 | 2018-08-21 | 平安科技(深圳)有限公司 | 异步任务统一处理方法、装置及存储介质 |
US20220058181A1 (en) * | 2020-08-20 | 2022-02-24 | Shanghai Icekredit, Inc. | Distributed transaction processing method and system based on message queue and database |
CN115964153A (zh) * | 2023-01-19 | 2023-04-14 | 中国农业银行股份有限公司 | 一种异步任务处理方法、装置、设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
陈嵩等: "新手学JAVA", 北京希望电子出版社, pages: 20 - 37 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180013856A1 (en) | Automatic data request recovery after session failure | |
US10108630B2 (en) | Cluster unique identifier | |
US9614646B2 (en) | Method and system for robust message retransmission | |
US8914335B2 (en) | Provisioning method and system | |
CN105468302B (zh) | 一种处理数据的方法、装置及系统 | |
US20190258646A1 (en) | Distributed transactions across multiple consensus groups | |
US9367298B1 (en) | Batch configuration mode for configuring network devices | |
EP2723017A1 (en) | Method, apparatus and system for implementing distributed auto-incrementing counting | |
CN106506490A (zh) | 一种分布式计算控制方法以及分布式计算系统 | |
WO2011120452A2 (zh) | 更新数据的方法和控制装置 | |
WO2021052237A1 (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN107094085B (zh) | 一种信令传送方法及装置 | |
CN111049913A (zh) | 数据文件的传输方法及装置、存储介质、电子设备 | |
CN110502581A (zh) | 分布式数据库系统监测方法及装置 | |
CN116775314A (zh) | 异步处理方法、装置和设备 | |
JP3304365B2 (ja) | メッセージ通信制御方法および通信システム | |
CN115296979A (zh) | 一种故障处理方法、装置、设备及存储介质 | |
JP2017167842A (ja) | トランザクション制御システムおよびトランザクション制御方法 | |
WO2003003244A1 (fr) | Procede d'elimination rapide de differentes informations dans les bases de donnees | |
US20080034053A1 (en) | Mail Server Clustering | |
CN111752911A (zh) | 一种基于Flume的数据传输方法、系统、终端及存储介质 | |
CN115866017B (zh) | 消息处理方法、装置、通信设备及存储介质 | |
CN115934428B (zh) | 一种mysql数据库的主灾备切换方法、装置及电子设备 | |
CN116643733B (zh) | 业务处理系统和方法 | |
CN109062931B (zh) | 缓存同步控制方法、装置、系统、服务器及可读存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230919 |