本申请涉及数据处理技术领域,尤其涉及一种长任务处理方法及系统。
背景技术:
在电商业务系统中,常常会遇到长时间批处理的任务,传统的同步方式时间很长,容易导致服务器无法继续提供服务,传统的异步方式则无法监控任务处理进度,还需要自己处理一致性问题。传统执行批处理的长任务的方式,需要开发者考虑很多底层细节,包括:上传下载文件问题,超时问题、拒绝服务问题、监控问题、一致性问题等。
因此,如何提供一种通用的方式来屏蔽这些底层细节,让开发者更关注任务执行的业务实现,以提高工作效率,是一项亟待解决的问题。
技术实现要素:
有鉴于此,本申请提供了一种长任务处理方法,能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
本申请提供了一种长任务处理方法,所述方法包括:
生成长任务的参数;
判断框架是否通过一致性判断,若是,则根据输入创建长任务;
任务创建成功后,返回任务id;
基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行长任务过程中,输出进度及日志。
优选地,所述方法还包括:
在长任务执行完成后,通过框架将长任务标记为已完成。
优选地,所述方法还包括:
基于所述任务id获取长任务执行结果。
优选地,所述方法还包括:
基于所述任务id实时查看长任务处理过程中的进度以及相关日志。
优选地,所述生成长任务的参数包括:
调用超文本传输协议接口提供长任务的参数。
一种长任务处理系统,包括:
生成模块,用于生成长任务的参数;
判断模块,用于判断框架是否通过一致性判断;
输入模块,用于当判断框架通过一致性判断时,根据输入创建长任务;
返回模块,用于任务创建成功后,返回任务id;
发送模块,用于基于框架将任务信息通过消息队列发送至执行长任务的消费者;
输出模块,用于在执行长任务过程中,输出进度及日志。
优选地,所述系统还包括:
标记模块,用于在长任务执行完成后,通过框架将长任务标记为已完成。
优选地,所述系统还包括:
获取模块,用于基于所述任务id获取长任务执行结果。
优选地,所述系统还包括:
查看模块,用于基于所述任务id实时查看长任务处理过程中的进度以及相关日志。
优选地,所述生成模块具体用于:
调用超文本传输协议接口提供长任务的参数。
综上所述,本申请公开了一种长任务处理方法,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种长任务处理方法实施例1的流程图;
图2为本申请公开的一种长任务处理方法实施例2的流程图;
图3为本申请公开的一种长任务处理方法实施例3的流程图;
图4为本申请公开的一种长任务处理方法实施例4的流程图;
图5为本申请公开的一种长任务处理系统实施例1的结构示意图;
图6为本申请公开的一种长任务处理系统实施例2的结构示意图;
图7为本申请公开的一种长任务处理系统实施例3的结构示意图;
图8为本申请公开的一种长任务处理系统实施例4的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请公开的一种长任务处理方法实施例1的流程图,所述方法可以包括以下步骤:
s101、生成长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,生成长任务的参数。
s102、判断框架是否通过一致性判断,若是,则进入s103:
当生成长任务的参数后,进一步对框架的一致性进行判断。
s103、根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
s104、任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
s105、基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
s106、在执行长任务过程中,输出进度及日志。
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
如图2所示,为本申请公开的一种长任务处理方法实施例2的流程图,所述方法可以包括以下步骤:
s201、生成长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,生成长任务的参数。
s202、判断框架是否通过一致性判断,若是,则进入s103:
当生成长任务的参数后,进一步对框架的一致性进行判断。
s203、根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
s204、任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
s205、基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
s206、在执行长任务过程中,输出进度及日志;
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
s207、在长任务执行完成后,通过框架将长任务标记为已完成。
在长任务执行完成后,进一步通过框架将长任务标记为已完成。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,在长任务执行完成后,进一步通过框架将长任务标记为已完成,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
如图3所示,为本申请公开的一种长任务处理方法实施例3的流程图,所述方法可以包括以下步骤:
s301、生成长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,生成长任务的参数。
s302、判断框架是否通过一致性判断,若是,则进入s103:
当生成长任务的参数后,进一步对框架的一致性进行判断。
s303、根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
s304、任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
s305、基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
s306、在执行长任务过程中,输出进度及日志;
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
s307、在长任务执行完成后,通过框架将长任务标记为已完成;
在长任务执行完成后,进一步通过框架将长任务标记为已完成。
s308、基于所述任务id获取长任务执行结果。
在长任务执行完成后,用户还可以进一步根基任务id通过查询结果接口获得长任务的执行结果。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,在长任务执行完成后,进一步通过框架将长任务标记为已完成,基于任务id获取长任务执行结果,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
如图4所示,为本申请公开的一种长任务处理方法实施例4的流程图,所述方法可以包括以下步骤:
s401、调用超文本传输协议接口提供长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,用户通过文件或参数调用超文本传输协议接口提供长任务的参数。
s402、判断框架是否通过一致性判断,若是,则进入s103:
当生成长任务的参数后,进一步对框架的一致性进行判断。
s403、根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
s404、任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
s405、基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
s406、在执行长任务过程中,输出进度及日志;
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
s407、在长任务执行完成后,通过框架将长任务标记为已完成;
在长任务执行完成后,进一步通过框架将长任务标记为已完成。
s408、基于所述任务id获取长任务执行结果;
在长任务执行完成后,用户还可以进一步根基任务id通过查询结果接口获得长任务的执行结果。
s409、基于任务id实时查看长任务处理过程中的进度以及相关日志。
在创建、执行、完成任务的全过程中,用户可以根据任务id通过任务查询接口实时看到任务目前进度和相关日志。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,在长任务执行完成后,进一步通过框架将长任务标记为已完成,基于任务id获取长任务执行结果,在创建、执行、完成任务的全过程中,用户还可以根据任务id通过任务查询接口实时看到任务目前进度和相关日志,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
如图5所示,为本申请公开的一种长任务处理系统实施例1的结构示意图,所述系统可以包括:
生成模块501,用于生成长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,生成长任务的参数。
判断模块502,用于判断框架是否通过一致性判断;
当生成长任务的参数后,进一步对框架的一致性进行判断。
输入模块503,用于当判断框架通过一致性判断时,根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
返回模块504,用于任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
发送模块505,用于基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
输出模块506,用于在执行长任务过程中,输出进度及日志。
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
如图6所示,为本申请公开的一种长任务处理系统实施例2的结构示意图,所述系统可以包括:
生成模块601,用于生成长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,生成长任务的参数。
判断模块602,用于判断框架是否通过一致性判断;
当生成长任务的参数后,进一步对框架的一致性进行判断。
输入模块603,用于当判断框架通过一致性判断时,根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
返回模块604,用于任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
发送模块605,用于基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
输出模块606,用于在执行长任务过程中,输出进度及日志。
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
标记模块607,用于在长任务执行完成后,通过框架将长任务标记为已完成。
在长任务执行完成后,进一步通过框架将长任务标记为已完成。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,在长任务执行完成后,进一步通过框架将长任务标记为已完成,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
如图7所示,为本申请公开的一种长任务处理系统实施例3的结构示意图,所述系统可以包括:
生成模块701,用于生成长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,生成长任务的参数。
判断模块702,用于判断框架是否通过一致性判断;
当生成长任务的参数后,进一步对框架的一致性进行判断。
输入模块703,用于当判断框架通过一致性判断时,根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
返回模块704,用于任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
发送模块705,用于基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
输出模块706,用于在执行长任务过程中,输出进度及日志。
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
标记模块707,用于在长任务执行完成后,通过框架将长任务标记为已完成。
在长任务执行完成后,进一步通过框架将长任务标记为已完成。
获取模块708,用于基于所述任务id获取长任务执行结果。
在长任务执行完成后,用户还可以进一步根基任务id通过查询结果接口获得长任务的执行结果。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,在长任务执行完成后,进一步通过框架将长任务标记为已完成,基于任务id获取长任务执行结果,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
如图8所示,为本申请公开的一种长任务处理系统实施例4的结构示意图,所述系统可以包括:
生成模块801,用于生成长任务的参数;
当需要进行长任务处理时,首先创建任务,在创建任务时,生成长任务的参数。
判断模块802,用于判断框架是否通过一致性判断;
当生成长任务的参数后,进一步对框架的一致性进行判断。
输入模块803,用于当判断框架通过一致性判断时,根据输入创建长任务;
当框架通过一致性判断后,根据输入创建长任务。
返回模块804,用于任务创建成功后,返回任务id;
在长任务创建成功后,将创建成功的长任务的id返回给用户。
发送模块805,用于基于框架将任务信息通过消息队列发送至执行长任务的消费者;
在执行任务阶段,框架将任务消息通过消息队列发送给执行任务的消费者。
输出模块806,用于在执行长任务过程中,输出进度及日志。
消费者负责执行长任务,在执行长任务过程中,给出进度及日志。
标记模块807,用于在长任务执行完成后,通过框架将长任务标记为已完成。
在长任务执行完成后,进一步通过框架将长任务标记为已完成。
获取模块808,用于基于所述任务id获取长任务执行结果。
在长任务执行完成后,用户还可以进一步根基任务id通过查询结果接口获得长任务的执行结果。
查看模块809,用于基于任务id实时查看长任务处理过程中的进度以及相关日志。
在创建、执行、完成任务的全过程中,用户可以根据任务id通过任务查询接口实时看到任务目前进度和相关日志。
综上所述,在上述实施例中,当需要进行长任务处理时,首先生成长任务的参数,然后判断框架是否通过一致性判断,当框架通过一致性判断时,根据输入创建长任务,然后任务创建成功后,返回任务id,基于框架将任务信息通过消息队列发送至执行长任务的消费者,在执行长任务过程中,输出进度及日志,在长任务执行完成后,进一步通过框架将长任务标记为已完成,基于任务id获取长任务执行结果,在创建、执行、完成任务的全过程中,用户还可以根据任务id通过任务查询接口实时看到任务目前进度和相关日志,本申请能够采用通用的方式屏蔽底层细节,让开发者更关注任务执行的业务实现,提高了长任务处理的工作效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。