掌桥专利:专业的专利平台
掌桥专利
首页

异步任务处理方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 12:19:35


异步任务处理方法、装置、电子设备和存储介质

技术领域

本发明实施例涉及计算机应用技术领域,尤其涉及一种异步任务处理方法、装置、电子设备和存储介质。

背景技术

随着互联网技术的发展,生活的方方面面逐渐依赖各自数字系统,而在数字系统中分布式系统因其资源共享、计算速度快以及可靠性高等优点逐渐得到广泛的应用。在分布式系统开发和使用过程中分布式异步任务常常通过中间件技术实现,然而现有的中间件技术在实现分布式异步任务时存在以下技术问题:

1、目前主流中间件技术功能复杂,需要开发人员花费大量时间学习相关的功能配置和功能使用;

2、在异步任务实现过程中开发人员需要实现中间件提供的接口或者继承抽象类,开发人员的水平导致分布式系统中异步任务的执行效率存在较大差异,降低了异步任务的执行效率;

3、中间件与分布式业务系统耦合程度高,不利于分布式业务系统的运行维护和升级开发。

发明内容

本发明提供一种异步任务处理方法、装置、电子设备和存储介质,以实现异步任务的执行,基于中间件归档文件包简化异步任务执行实现过程,降低中间件与业务系统的耦合程度,降低业务系统维护和升级难度。

第一方面,本发明实施例提供了一种异步任务处理方法,该方法包括:

根据中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,其中,所述中间件归档文件包中包括中间件的至少一个运行文件;

将所述待转换代码块的执行参数存储到所述中间归档文件包对应的持久化存储空间;

基于所述执行参数反射调用所述待转换代码块以实现所述待转换代码块的异步执行。

第二方面,本发明实施例还提供了一种异步任务处理装置,该装置包括:

代码确定模块,根据中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,其中,所述中间件归档文件包中包括中间件的至少一个运行文件;

参数存储模块,用于将所述待转换代码块的执行参数存储到所述中间归档文件包对应的持久化存储空间;

异步执行模块,用于基于所述执行参数反射调用所述待转换代码块以实现所述待转换代码块的异步执行。

第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的异步任务处理方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明实施例中任一所述的异步任务处理方法。

本发明实施例,通过使用中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,将待转换代码块的执行参数存储到中间件归档文件包创建的持久化存储空间,根据存储的支持参数反射调用待转换代码,实现异步任务的执行,通过中间件归档文件包的使用降低开发难度,统一中间件的功能效率,基于中间件归档文件包提供的存储空间缓存执行参数,并使用反射调用的方式执行待转换代码,降低中间件代码与业务代码的耦合程度,可减少业务系统的维护和升级难度。

附图说明

图1是本发明实施例一提供的一种异步任务处理方法的流程图;

图2是本发明实施例二提供的一种异步任务处理方法的流程图;

图3是本发明实施例二提供的一种异步任务处理方法的示例图;

图4是本发明实施例三提供的一种异步任务处理装置的结构示意图;

图5是本发明实施例四提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

图1是本发明实施例一提供的一种异步任务处理方法的流程图,本发明实施例可适用于异常任务调用的情况,该方法可以由异步任务处理装置来执行,该装置可以采用硬件和/或软件的方式来实现,参见图1,本发明实施例提供的方法具体包括如下步骤:

步骤110、根据中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,其中,所述中间件归档文件包中包括中间件的至少一个运行文件。

其中,中间件归档文件包可以包括中间件运行使用的一个或者多个支持文件,中间件归档文件可以用于部署和运行中间件,中间归档文件具体可以是实现异步任务执行的Java归档(Java ARchive,JAR)文件包或Web归档(Web application ARchive,WAR)文件包。异步任务标识可以是标识异步任务的标识信息,异步任务标识可以由文字、字母和数字组成,异步任务标识可以由中间件归档文件包定义,中间归档文件包中可以包括异步任务标准的注解类。目标工程文件可以是实现业务系统的一个或多个代码文件,目标工程文件中可以实现业务功能的代码文件和配置文件等。待转换代码块可以是需要进行异步调用的类代码或方法代码,待转换代码块可以包括实现业务功能的处理逻辑。

在本发明实施例中,目标工程文件中的待转换代码块可以预先使用异步任务标识进行标记,可以实现待转换代码块的异步执行时,可以通过字符匹配或者字符识别的方式获取目标工程文件中的异步任务标识,可以将被异步任务标识标记的代码块作为待转换代码块,可以理解的是,异步任务标识标记待转换代码块的方式可以包括在待转换代码块的开头或者结尾进行标记。

步骤120、将待转换代码块的执行参数存储到中间件归档文件包对应的持久化存储空间。

其中,执行参数可以是待转换代码块进行调用时使用的参数信息,可以包括待转换代码块本身的参数以及外部方法传入的参数等,参数信息具体可以包括方法签名、入参和注解参数等。持久化存储空间可以是用于存储执行参数的存储区域,持久化存储空间可以依靠中间件归档文件包创建,例如,中间件归档文件包中可以封装有持久化存储空间的创建指令,可以通过调用中间件归档文件包中创建指令实现持久化存储空间的创建。

具体的,可以提取待转换代码块中的执行参数,并将该执行参数存储到依靠中间件归档文件包创建的持久化存储空间中,执行参数的提取时机可以取决于待转换代码块中执行参数的类型,例如,对于属于待转换代码块本身的内部参数可以在待转换代码块执行前提取到持久化存储空间中,对于属于待转换代码块外部参数的执行参数,可以在待转换代码块的调用过程中将执行参数提取到持久化存储空间中,进一步的,为了减少提取过程的时间占用,可以直接在待转换代码块的调用过程中将所有执行参数提取到持久化存储空间。

步骤130、基于执行参数反射调用待转换代码块以实现待转换代码块的异步执行。

其中,反射调用可以对待转换代码块进行动态链接程序组件的方法,可以通过执行参数实现待转换代码块的调用。

在本发明实施例中,可以进行异步任务调用时,可以获取持久化存储空间存储的执行参数,基于该执行参数反射调用待转换代码块,实现待转换代码块的异步执行。

本发明实施例,通过使用中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,将待转换代码块的执行参数存储到中间件归档文件包创建的持久化存储空间,根据存储的支持参数反射调用待转换代码,实现异步任务的执行,通过中间件归档文件包的使用降低开发难度,统一中间件的功能效率,基于中间件归档文件包提供的存储空间缓存执行参数,并使用反射调用的方式执行待转换代码,降低中间代码与业务代码的耦合程度,可减少业务系统的维护和升级难度。

实施例二

图2是本发明实施例二提供的一种异步任务处理方法的流程图,本发明实施例是在上述发明实施例基础上的具体化,参见图2,本发明实施例提供的方法具体包括如下步骤:

步骤210、配置中间件归档文件包,并将异步任务标识用作修饰目标文件中的待转换代码块的注解。

在本发明实施例中,在执行异步任务之前,可以对中间件归档文件包进行配置,可以将中间件归档文件包按照到目标工程文件中,以及创建中间件归档文件包运行需要的配置文件,例如,创建中间件归档文件包中各类的对象以及创建中间件归档文件包依赖的持久化存储空间。

具体的,可以实现待转换代码块的异步执行之前,可以使用中间件归档文件定义的异步任务标识在对目标文件中的待转换代码块进行注解,例如,可以根据用户输入的参数匹配目标文件中待转换代码块,并在待转换代码块之前添加异步任务标识作为代码注解。

进一步的,在上述发明实施例的基础上,所述异步任务标识至少包括异步类注解标识以及异步方法注解标识。

在本发明实施例中,异常任务标识可以包括对待异步执行的类进行转换的异步类注解标识以及对待异步执行的方法进行转换的异步方法注解标识,例如,异步类注解标识可以为@ScheduleBean,异步方法注解标识可以为@ScheduleAsync,可以在目标工程文件的开发过程中使用异步方法注解标识和异步类注解标识分别对类代码以及方法代码进行注解,表明类代码和方法代码需要进行异步执行。

步骤220、根据中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块。

步骤230、在调用待转换代码块时,使用切面技术提取待转换代码块的执行参数,其中,执行参数至少包括方法签名、入参、注解参数中一种。

其中,切面技术可以是将功能代码和业务逻辑代码分离的技术,可以在待转换代码块执行过程中改变实际执行的处理逻辑。

具体的,可以对待转换代码块调用过程中使用切面技术,使得待转换代码块被调用时执行提取待转换代码块的执行参数的处理逻辑,在待转换代码块的执行调用过程中提取待转换代码块的方法签名、入参、注解参数等执行参数,其中,方法签名可以是待转换代码块的方法名称和参数类型,入参可以是待转换代码块调用过程中传入的参数,注解参数可以是待转换代码块注解支持的参数。

步骤240、存储执行参数到持久化存储空间。

在本发明实施例中,可以将提取到的支持参数存储到持久化存储空间,该持久化存储空间可以为存储表、存储数据库和存储文件中的一种或者多种,持久化存储空间可以在中间件归档文件包的配置过程创建。可以理解的是,每当待转换代码块被调用时即可提取到执行参数存储到持久化存储空间,持久化存储空间可以保存一组或者多组执行参数。

步骤250、在触发异步任务调度时,反序列化执行参数。

其中,异步任务调度可以是触发待转换代码块异步执行的触发信息,异步任务调度可以由业务系统自动生成或者由用户手动输入,反序列化可以是将字节序列恢复为代码对象的过程,便于执行参数在待转换代码块中执行。

具体的,在异步任务调度被触发时,可以获取持久化存储空间内的执行参数,对执行参数进行反序列化处理,字节序列形式的执行参数转换为可执行对象。

步骤260、按照反序列化的执行参数反射调用待转换代码块。

具体的,可以使用反序列化后的执行参数按照反射调用的方式重新调用待转换代码块的原始业务处理逻辑,实现待转换代码块的异步执行。

本发明实施例,通过配置中间件归档文件包,并使用异步任务标识注解目标文件中的待转换代码块,在调用待转换代码块时,使用切面技术对待转换代码块中的执行参数进行提取,存储执行参数到持久化存储空间,在触发异步任务调度是反序列化执行参数,使用反序列化的执行参数反射调用待转换代码块,实现任务的异步执行,通过切面技术在待转换代码块的调用过程中提取执行参数,减少执行参数的提取时间,使用持久化存储空间存储执行参数并进行异步任务调度,降低中间件代码与业务代码的耦合程度,可降低业务系统的维护和升级难度。

进一步的,在上述发明实施例的基础上,所述根据中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,包括:获取所述目标工程文件中为注解为异步任务标识的代码块;将所述代码块作为进行异步执行的待转换代码块。

具体的,可以获取目标工程文件中的注解,并判断注解是否为异步任务标识,若确定为异步任务标识,则将该注解修饰的代码块作为异步执行的待转换代码块,该待转换代码块可以依靠中间件归档文件包实现异步执行。

进一步的,在上述发明实施例的基础上,所述配置所述中间件归档文件包,包括:

将中间件归档文件包添加到目标工程文件所在目录;创建异步任务执行类,并按照异步任务执行类实例化异步任务标识对应数量的对象;创建对象注册类,并按照所述对象注册类将所述对象注册到所述目标工程文件;创建中间件归档文件包的持久化存储空间,其中,持久化存储空间包括存储表、存储数据库和存储文件中至少一种。

其中,异步任务执行类可以是实现任务异步调用的执行类,异步任务执行类的文件可以包括在中间件归档文件包,对象注册类可以是将异步任务执行类创建的对象进行注册的执行类。

在本发明实施例中,在使用中间件归档文件包之前可以进行配置,配置的内容可以包括添加中间件归档文件包到目标工程文件,并对中间件归档文件包中包括的异步任务执行类进行创建,可以使用创建的执行类创建与异步任务标识数量对应的数量的对象,并可以使用对象注册类将创建的对象在目标工程文件中进行注册,还可以创建中间件归档文件在异步任务执行过程使用的持久化存储空间,具体的,持久化存储空间可以为存储表、存储数据库或者存储文件。

进一步的,在上述发明实施例的基础上,所述中间件归档文件包至少包括以下运行文件:异步任务标识注解类文件,执行参数提取类文件,异步任务执行类文件,对象注册类文件以及配置适配类文件。

具体的,中间归档文件包可以包括异步任务标识注解类,执行参数提取类,任务执行类,对象注册类,配置适配类等的文件,其中,异步任务标识注解类可以是提供异步任务标识的注解类型,提供转换为异步执行的类或者方法的方法。执行参数提取类可以是实现切面方法的类方法,可以在待转换代码块被调用时不再执行原有的出来逻辑,而是实现执行参数提取类的逻辑。任务执行类可以是实例化对象的类,在触发异步任务调度时调用被注解修饰的方法。对象注册类可以是为了适配异步执行任务,在需要对组件进行注册时使用的类方法,支持在目标工程文件的服务中心进行注册。配置适配类可以是保证中间件运行的配置文件统一管理的类方法。

在一个示例性的实施方式中,中间件归档文件包具体为Jar包,该Jar包中可以包括ScheduleAsync类文件和ScheduleBean类文件,这ScheduleAsync类和ScheduleBean类可以为注解类,主要是提供给jar包使用者使用,修饰需要转异步的类和转异步的方法体,被方法体修饰的方法块会在同步执行时候转为异步表中的数据,在任务调度时候会被从表中取出后,反射执行。该Jar包还可以包括ScheduleAsyncAspect类文件,ScheduleAsyncAspect类可以是切面类,被注解修饰的代码块可以在同步执行过程中进入切面方法,不再执行原有的处理逻辑,直接执行切面方法中将执行参数写入任务表的逻辑。Schedule Configuration,ScheduleProperties,ScheduleXMLLoad类文件也包括在JaR包中,ScheduleConfiguration,ScheduleProperties,ScheduleXMLLoad类是配置的适配类,保证中间件需要的配置或者配置文件由组件进行生成,转换为本中间件统一的配置。ScheduleRegistJSFService类是为了适配目前的异步任务,有的组件是需要到远程过程调用(Remote Procedure Call,RPC)服务的服务中心进行注册实现任务调用,便于后续支持对其他异步任务组件的拓展。Defaul tScheduleTaskService是默认的任务执行类,这个类在服务启动时候,会根据上述注解修饰的代码块实例化出对应个数的对象,保证触发任务的调度时候调用各个方法对应的对象。ScheduleAsyncTaskService是注册类,把上述的类进行spring注册,让spring管理每个由被注解修饰的方法都有上述类实例化的对象,统一注册到spring中,实现统一的调用管理。

在一个示例性的实施方式中,图3是本发明实施例二提供的一种异步任务处理方法的示例图,参见图3,可以在工程文件中使用预先封装的异步任务中间件的Jar包,在引入Jar包后,中间件的接入者无需关注中间件的具体使用规则,只需要关注业务实现,在对转异步的方法使用Jar包提供的注解进行修饰后,可以自行实现异步任务的转换,并通过更改Jar包中统一的配置项实现异步任务执行参数的配置。本发明实施例提供的异步任务执行方法具体包括如下步骤:

1、首先使用Jar包中定义的@ScheduleBean和@ScheduleAsync注解修饰代码文件中需要转异步的代码块。

2、被修饰的代码块使用Spring的切面技术进行处理,执行到被修饰的代码块时,不再执行代码块中的实际逻辑,而是执行切面方法。其中,切面方法主要是把被修饰的代码块的方法签名、入参以及注解支持的参数等写入到统一的任务表进行持久化,该任务表可以在引入Jar包的过程中创建;每个代码块的每次调用都作为一个异步任务被持久化到任务表中。切面方法的类、入参等分别为通用注解方法类和切面入参,通过切面入参获取方法签名,原始方法入参;通过注解方法类作为入参获取注解中配置的参数;最终通过切面技术不再执行原始的代码块,把所有信息写入建立的统一的任务表,其中,该任务表可以包括任务类型、消息主体、方法签名、业务主键、业务属性、任务状态、执行次数、创建时间、预期执行时间、更新时间和时间戳等字段。

3、在工程启动的时候,会默认实现一个执行异步任务的类,根据被上述注解修饰不同的代码块,初始化不同的实例注册到运行的工程中,根据封装的异步任务中间件的不同处理逻辑,可以通过不同的触发逻辑来调用注册的实例,例如clover会使用clover平台触发对工程注册的服务的调用,触发调用后,会触发本发明的获取任务逻辑,获取到任务后,根据持久化到数据表中的方法签名和入参等信息,通过反射执行被反序列化出来的数据,从而达到异步执行代码块的目标。

实施例三

图4是本发明实施例三提供的一种异步任务处理装置的结构示意图,图4示出的装置可执行本发明任意实施例所提供的异步任务处理方法,具备执行方法相应的功能模块和有益效果,该装置可以由软件和/或硬件实现,具体包括:代码确定模块301、参数存储模块302和异步执行模块303。

代码确定模块301,用于根据中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,其中,所述中间件归档文件包中包括中间件的至少一个运行文件。

参数存储模块302,用于将所述待转换代码块的执行参数存储到所述中间归档文件包对应的持久化存储空间。

异步执行模块303,用于基于所述执行参数反射调用所述待转换代码块以实现所述待转换代码块的异步执行。

本发明实施例,通过代码确定模块使用中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,参数存储模块将待转换代码块的执行参数存储到中间件归档文件包创建的持久化存储空间,异步执行模块根据存储的支持参数反射调用待转换代码,实现异步任务的执行,通过中间件归档文件包的使用降低开发难度,统一中间件的功能效率,基于中间件归档文件包提供的存储空间缓存执行参数,并使用反射调用的方式执行待转换代码,降低中间件代码与业务代码的耦合程度,可减少业务系统的维护和升级难度。

进一步的,在上述发明实施例的基础上,所述装置包括:配置模块,用于配置所述中间件归档文件包,并将所述异步任务标识作为修饰所述目标工程文件中待转换代码块的注解。

进一步的,在上述发明实施例的基础上,所述装置中配置模块具体用于:

将所述中间件归档文件包添加到所述目标工程文件所在目录;创建异步任务执行类,并按照所述异步任务执行类实例化所述异步任务标识对应数量的对象;创建对象注册类,并按照所述对象注册类将所述对象注册到所述目标工程文件;创建所述中间件归档文件包的持久化存储空间,其中,所述持久化存储空间包括存储表、存储数据库和存储文件中至少一种。

进一步的,在上述发明实施例的基础上,所述装置中代码确定模块301包括:

注解获取单元,用于获取所述目标工程文件中为注解为异步任务标识的代码块。

代码确定单元,用于代码确定将所述代码块作为进行异步执行的待转换代码块。

进一步的,在上述发明实施例的基础上,所述装置中参数存储模块302包括:

切面执行单元,用于在调用所述待转换代码块时,使用切面技术提取所述待转换代码块的执行参数,其中,所述执行参数至少包括方法签名、入参以及注解参数中一种。

参数存储单元,用于存储所述执行参数到所述持久化存储空间。

进一步的,在上述发明实施例的基础上,所述异步执行模块303包括:

反序列化单元,用于在触发异步任务调度时,反序列化所述执行参数。

反射调用单元,用于按照反序列化的所述执行参数反射调用所述待转换代码块。

进一步的,在上述发明实施例的基础上,所述装置中异步任务标识至少包括异步类注解标识以及异步方法注解标识。

进一步的,在上述发明实施例的基础上,所述装置中中间件归档文件包中至少包括以下运行文件:异步任务标识注解类文件,执行参数提取类文件,异步任务执行类文件,对象注册类文件以及配置适配类文件。

实施例四

图5是本发明实施例四提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器40、存储器41、输入装置42和输出装置43;电子设备中处理器40的数量可以是一个或多个,图5中以一个处理器40为例;电子设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的异步任务处理方法对应的程序指令/模块(例如,异步任务处理装置中的代码确定模块301、参数存储模块302和异步执行模块303)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的异步任务处理方法。

存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置42可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种异步任务处理方法,该方法包括:

根据中间件归档文件包定义的异步任务标识确定目标工程文件中的待转换代码块,其中,所述中间件归档文件包中包括中间件的至少一个运行文件;

将所述待转换代码块的执行参数存储到所述中间归档文件包对应的持久化存储空间;

基于所述执行参数反射调用所述待转换代码块以实现所述待转换代码块的异步执行。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的异步任务处理中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述异步任务处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 异步任务处理方法、装置、电子设备和存储介质
  • 异步任务调度方法、装置、电子设备及存储介质
技术分类

06120113256101