CN111240864A - 异步任务处理方法、装置、设备及计算机可读存储介质 - Google Patents
异步任务处理方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111240864A CN111240864A CN202010033028.0A CN202010033028A CN111240864A CN 111240864 A CN111240864 A CN 111240864A CN 202010033028 A CN202010033028 A CN 202010033028A CN 111240864 A CN111240864 A CN 111240864A
- Authority
- CN
- China
- Prior art keywords
- task
- asynchronous
- processing mode
- asynchronous task
- task 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.)
- Pending
Links
Images
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及基架运维技术领域,公开了一种异步任务处理方法,包括以下步骤:接收异步任务请求,所述异步任务请求包含异步任务的任务类型;根据所述任务类型确定与所述异步任务请求对应的任务信息;根据所述任务信息确定任务参数组装模板;通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务;基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务,所述异步任务处理方式包括:指定异步任务处理方式和默认异步任务处理方式。本发明还公开了一种异步任务处理装置、设备及计算机可读存储介质。本发明提供的异步任务处理方法提高了异步任务的处理效率。
Description
技术领域
本发明涉及基架运维技术领域,尤其涉及一种异步任务处理方法、装置、设备及计算机可读存储介质。
背景技术
目前,一种类型的任务一般只能选择一种异步任务处理方式,这样无法根据条件的变化来选择最合适的处理方式。比如,在处理时效要求提高或下降、任务数量突增或减少时,若不能及时地更换处理方式,则有可能造成资源的浪费,因此,如何根据实际场景的需求选择合适的异步任务处理方式,以提高异步任务的处理效率是本领域目前亟待解决的技术问题。
发明内容
本发明的主要目的在于提供一种异步任务处理方法、装置、设备及计算机可读存储介质,旨在解决由异步任务处理方式单一,而造成的异步任务处理效率低的技术问题。
为实现上述目的,本发明提供一种异步任务处理方法,所述异步任务处理方法包括以下步骤:
一种异步任务处理方法,其特征在于,所述异步任务处理方法包括以下步骤:
接收异步任务请求,所述异步任务请求包含异步任务的任务类型;
根据所述任务类型确定与所述异步任务请求对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
根据所述任务信息确定任务参数组装模板;
通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务。
可选地,所述根据所述任务类型确定与所述异步任务请求对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式,包括以下步骤:
通过轮询的方式在预置异步任务处理方式配置表中查询与所述异步任务请求相对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
根据所述任务信息,判断预置指定异步任务处理方式开关是否打开;
若预置指定异步任务处理方式开关打开,则得到指定异步任务处理方式;
若预置指定异步任务处理方式开关关闭,则得到默认异步任务处理方式。
可选地,所述若预置指定异步任务处理方式开关打开,则得到指定异步任务处理方式包括以下步骤:
通过预置监控程序监控CPU占用率和内存使用率;
判断所述CPU占用率是否小于或等于第一预设阈值;
若所述CPU占用率小于或等于所述第一预设阈值,则判断所述内存使用率是否大于第二预设阈值;
若所述内存使用率大于所述第二预设阈值,则确定预置指定异步任务处理方式开关打开,得到指定异步任务处理方式。
可选地,所述基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务,包括以下步骤:
根据预置异步任务处理方式配置表中的预置异步任务处理方式的优先级,获得优先级最高的异步任务处理方式;
根据所述异步任务处理方式确定任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务。
可选地,所述基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务包括以下步骤:
判断所述任务步骤数据中是否包括多个步骤;
若所述任务步骤数据中包括多个步骤,则判断所述多个步骤是否符合并发处理的条件;
若所述多个步骤符合并发处理的条件,则基于所述待组装的任务参数和所述异步任务处理方式,采用所述多个步骤通过并发的形式执行所述待执行任务;
若所述多个步骤不符合并发处理的条件,则基于所述待组装的任务参数和所述异步任务处理方式,按照所述多个步骤的预置顺序执行所述待执行任务。
可选地,所述根据所述异步任务处理方式确定任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据包括以下步骤:
遍历所述异步任务处理方式,判断所述异步任务处理方式是否包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类;
若所述异步任务处理方式包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类,则获取与所述异步任务处理方式相对应的任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
可选地,所述通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据包括:
通过哈希算法建立任务参数组装模板与待组装的任务参数之间的匹配关系;
基于所述匹配关系,通过所述任务参数组装模板对当前待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
进一步地,为实现上述目的,本发明还提供一种异步任务处理装置,所述异步任务处理装置包括以下模块:
接收模块,用于接收异步任务请求,所述异步任务请求包含异步任务的任务类型;
任务信息选择模块,用于根据所述任务类型确定与所述异步任务请求对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
任务参数组装模板选择模块,用于根据所述任务信息确定任务参数组装模板;
组装模块,用于通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
执行模块,用于基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务。
可选地,所述任务信息选择模块包括以下单元:
查询单元,用于通过轮询的方式在预置异步任务处理方式配置表中查询与所述异步任务请求相对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
预置指定异步任务处理方式开关判断单元,用于根据所述任务信息,判断预置指定异步任务处理方式开关是否打开;
指定异步任务处理方式选择单元,用于若预置指定异步任务处理方式开关打开,则得到指定异步任务处理方式;
默认异步任务处理方式选择单元,用于若预置指定异步任务处理方式开关关闭,则得到默认异步任务处理方式。
可选地,所述指定异步任务处理方式选择单元用于:
通过预置监控程序监控CPU占用率和内存使用率;
判断所述CPU占用率是否小于或等于第一预设阈值;
若所述CPU占用率小于或等于所述第一预设阈值,则判断所述内存使用率是否大于第二预设阈值;
若所述内存使用率大于所述第二预设阈值,则确定预置指定异步任务处理方式开关打开,得到指定异步任务处理方式。
可选地,所述执行模块包括以下单元:
异步任务处理方式获取单元,用于根据预置异步任务处理方式配置表中的预置异步任务处理方式的优先级,获得优先级最高的异步任务处理方式;
任务步骤数据选择单元,用于根据所述异步任务处理方式确定任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
异步任务处理方式执行单元,用于基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务。
可选地,所述异步任务处理方式执行单元用于:
判断所述任务步骤数据中是否包括多个步骤;
若所述任务步骤数据中包括多个步骤,则判断所述多个步骤是否符合并发处理的条件;
若所述多个步骤符合并发处理的条件,则基于所述待组装的任务参数和所述异步任务处理方式,采用所述多个步骤通过并发的形式执行所述待执行任务;
若所述多个步骤不符合并发处理的条件,则基于所述待组装的任务参数和所述异步任务处理方式,按照所述多个步骤的预置顺序执行所述待执行任务。
可选地,所述任务步骤数据选择单元用于:
遍历所述异步任务处理方式,判断所述异步任务处理方式是否包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类;
若所述异步任务处理方式包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类,则获取与所述异步任务处理方式相对应的任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
可选地,所述组装模块包括以下单元:
匹配关系构建单元,用于通过哈希算法建立任务参数组装模板与待组装的任务参数之间的匹配关系;
任务参数组装单元,用于基于所述匹配关系,通过所述任务参数组装模板对当前待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
进一步地,为实现上述目的,本发明还提供一种异步任务处理设备,所述异步任务处理设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的异步任务处理程序,所述异步任务处理程序被所述处理器执行时实现如上述任一项所述的异步任务处理方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有异步任务处理程序,所述异步任务处理程序被处理器执行时实现如上述任一项所述的异步任务处理方法的步骤。
将不同的异步任务处理方式集中在一起,根据实际场景下的异步任务请求获取相应的异步任务处理方式。可最大程度地避免由单一的异步任务处理方式而造成的资源浪费的情况,可以有效将不同的异步任务处理方式的优势结合在一起。使系统资源利用、处理时效、处理吞吐量得到平衡。
附图说明
图1为本发明实施例方案涉及的异步任务处理设备运行环境的结构示意图;
图2为本发明中异步任务处理方法第一实施例的流程示意图;
图3为图2中步骤S20一实施例的细化流程示意图;
图4为图3中步骤S203一实施例的细化流程示意图;
图5为图2中步骤S50一实施例的细化流程示意图;
图6为图5中步骤S503一实施例的细化流程示意图;
图7为图5中步骤S502一实施例的细化流程示意图;
图8为本发明异步任务处理方法第二实施例的流程示意图;
图9为本发明异步任务处理装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种异步任务处理设备。
参照图1,图1为本发明实施例方案涉及的异步任务处理设备运行环境的结构示意图。
如图1所示,该异步任务处理设备包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的异步任务处理设备的硬件结构并不构成对异步任务处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及异步任务处理程序。其中,操作系统是管理和控制异步任务处理设备和软件资源的程序,支持异步任务处理程序以及其它软件和/或程序的运行。
在图1所示的异步任务处理设备的硬件结构中,网络接口1004主要用于接入网络;用户接口1003主要用于侦测确认指令和编辑指令等。而处理器1001可以用于调用存储器1005中存储的异步任务处理程序,并执行以下异步任务处理方法的各实施例的操作。
基于上述异步任务处理设备硬件结构,提出本发明异步任务处理方法的各个实施例。
参照图2,图2为本发明异步任务处理方法第一实施例的流程示意图。本实施例中,异步任务处理方法包括以下步骤:
步骤S10,接收异步任务请求,异步任务请求包含异步任务的任务类型;
本实施例中,通过接收端接收异步任务请求,异步任务请求可以涵盖以下场景,一、将批改产生保费变化数据下发至财务平台;二、将最新保单数据上传至交管平台;三、将最新保单数据上传至保信平台。常用的异步任务处理方式有:quartz任务调度、消息队列、异步多线程。异步任务请求中含有各个任务的任务类型,例如,任务类型可以是将最新保单数据上传至保信平台。
步骤S20,根据任务类型确定与异步任务请求对应的任务信息,其中,任务信息包括:异步任务处理方式、任务处理时效和任务数量,异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
本实施例中,接收到异步任务请求后,异步任务请求中含有每个任务的任务类型,根据任务类型得到与异步任务请求对应的任务信息,任务信息包括:包含有各个异步任务处理方式的预置异步任务处理方式配置表,以及各个任务对应的任务步骤。从该预置异步任务处理方式配置表中可查询到与各个任务类型对应的异步任务处理方式,以及每个任务对应的任务步骤。
可通过轮询的方式在预置异步任务处理方式配置表中查询与异步任务类型相匹配的异步任务处理方式,其中,异步任务处理方式包括:指定异步任务处理方式和默认异步任务处理方式,异步任务处理方式可以为quartz任务调度、消息队列、异步多线程,异步任务处理方式之间的关系包括先后关系和并列关系。
由于已预先在预置异步任务处理方式配置表设置好了与任务类型存在匹配关系的异步任务处理方式,因此,可以通过轮询的方式根据当前的任务类型得到与任务类型相匹配的异步任务处理方式,为了更大程度地运用到符合当前场景的异步任务处理方式,还可以预先将异步任务处理方式分为指定异步任务处理方式和默认异步任务处理方式,其中,默认异步任务处理方式指的是,在通常场景下优先选择的处理方式,也可以是在预置指定异步任务处理方式开关关闭时,需要选择的处理方式,例如,与第一类型任务相配匹配的异步任务处理方式分别为,第一指定异步任务处理方式和第一默认异步任务处理方式,由于默认异步任务处理方式的优先级别高于指定异步任务处理方式,因此,在当前场景下优先使用第一默认异步任务处理方式,若是任务量突然激增或者是要求提高或下降处理的时效时,则需要切换至指定异步任务处理方式。
之所以区分出不同的异步任务处理方式,是为了方便根据实际场景的需求选择最合适的异步任务处理方式,例如,选择quartz任务调度、消息队列或异步多线程中的一种或多种。quartz任务调度和消息队列一般会由另外的调度程序或消息消费端程序来处理异步任务,quartz任务调度的处理时效受调度频率影响,消息队列的处理时效受网络延时和消息处理能力影响。异步多线程在原程序中异步处理,一般会比quartz任务调度和消息队列处理更快,但原程序会消耗更多的服务器资源。异步任务处理方式之间的关系包括先后关系和并列关系,先后关系指的是当存在两个或两个以上的异步任务处理方式时,若异步任务处理方式预先设置有优先级别,则根据优先级别呈先后关系。
在步骤S20之前,还包括通过哈希算法建立异步任务类型与任务信息之间的映射关系,将异步任务类型输入哈希算法,通过哈希算法计算后可得到唯一的数值,其中,每个异步任务类型同时与指定异步任务处理方式和默认异步任务处理方式存在映射关系,指定异步任务处理方式和默认异步任务处理方式之间存在第一预置优先级关系,不同的指定异步任务处理方式之间存在第二预置优先级关系,不同的默认异步任务处理方式之间存在第三预置优先级关系。
每个异步任务类型同时与指定异步任务处理方式和默认异步任务处理方式存在映射关系,指定异步任务处理方式和默认异步任务处理方式之间存在第一预置优先级关系,不同的指定异步任务处理方式之间存在第二预置优先级关系,不同的默认异步任务处理方式之间存在第三预置优先级关系。
将与异步任务类型存在映射关系的任务信息,按照预置优先级关系存储于预置异步任务处理方式配置表。
本实施例中,将与异步任务类型存在映射关系的任务信息,按照预置优先级关系存储于预置异步任务处理方式配置表,预置优先级关系可包括第一预置优先级关系、第二预置优先级关系和第三预置优先级关系。预置优先级关系指的是,指定默认异步任务处理方式优先于异步任务处理方式。任务信息包括:异步任务处理方式、任务处理时效和任务数量。
将不同的异步任务处理方式集中在一起,根据实际场景下的异步任务请求获取相应的异步任务处理方式。可最大程度地避免由单一的异步任务处理方式而造成的资源浪费的情况,可以有效将不同步异步任务处理方式的优势结合在一起。
步骤S30,根据任务信息确定任务参数组装模板;
本实施例中,任务信息包括异步任务处理方式,可根据预先建立的异步任务处理方式和任务参数组装模板之间的映射关系,确定任务参数组装模板。任务参数组装模板指的是通过调用预置的函数来将不同的任务参数组装在一起的模版,可通过任务参数组装模板和任务参数生成待执行任务。
步骤S40,通过任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
本实施例中,当接收到异步任务请求后,则通过任务参数组装模板对待组装的任务参数进行组装,待组装的任务参数用于通过任务参数组装模板生成待执行任务,待组装的任务参数不同,生成的待执行任务的类型也不同,可根根据待组装的任务参数控制每个待执行任务的任务执行顺序和任务处理时效。
步骤S50,基于待组装的任务参数和异步任务处理方式执行待执行任务。
本实施例中,由于可通过不同的待组装的任务参数生成不同的待执行任务,且可控制每个待执行任务的任务执行顺序和任务处理时效,又由于预先获取到了异步任务处理方式,因此可根据任务参数和异步任务处理方式执行待执行任务。待组装的任务参数决定了任务步骤、任务时效和待执行任务类型,例如,规定5分钟内的待执行任务是有效的,可被执行,若是超过了5分钟,则是无效的,不可被执行。异步任务处理方式决定了在执行待执行任务时,是采用指定异步任务处理方式还是采用默认异步任务处理方式。
通过将多种异步任务处理方式结合在一起,例如,quartz任务调度、消息队列、异步多线程,增加了异步任务处理方式的种类,提高了异步任务的处理效率。
参照图3,图3为图2中步骤S20一实施例的细化流程示意图。本实施例中,步骤S20,根据任务类型确定与异步任务请求对应的任务信息,其中,任务信息包括:异步任务处理方式、任务处理时效和任务数量,异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式,包括以下步骤:
步骤S201,通过轮询的方式在预置异步任务处理方式配置表中查询与异步任务请求相对应的任务信息,其中,任务信息包括:异步任务处理方式、任务处理时效和任务数量,异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
本实施例中,可预先建立异步任务类型与异步任务处理方式之间的映射关系,并可通过轮询的方式从预置异步任务处理方式配置表中查询到与异步任务类型相匹配的指定异步任务处理方式或默认异步任务处理方式。
步骤S202,根据任务信息,判断预置指定异步任务处理方式开关是否打开;
本实施例中,可根据预先在预置异步任务处理方式配置表中配置好的参数,以判断预置指定异步任务处理方式开关是否为打开的状态,例如,参数中带有“TRUE”则说明为打开状态,若参数中带有“FALSE”,则说明为关闭状态。
步骤S203,若预置指定异步任务处理方式开关打开,则得到指定异步任务处理方式;
步骤S204,若预置指定异步任务处理方式开关关闭,则得到默认异步任务处理方式。
本实施例中,根据预先配置好的参数与各个异步任务处理方式之间的对应关系,因此,可以在预置指定异步任务处理方式开关打开时,切换到指定异步任务处理方式,在开关关闭时,切换到默认异步任务处理方式。
参照图4,图4为图3中步骤S203一实施例的细化流程示意图。本实施例中,步骤S203,若预置指定异步任务处理方式开关打开,则得到指定异步任务处理方式包括以下步骤:
步骤S2031,通过预置监控程序监控CPU占用率和内存使用率;
本实施例中,通过预置监控程序监控并得到CPU占用率和内存使用率,其目的是,在接收异步任务请求后,为选择合适的异步任务处理方式提供依据。
由于在某些场景下,不适宜使用默认异步任务处理方式,例如,在处理时效要求提高或下降、任务数量突增或减少的场景下,则需要使用指定异步任务处理方式。为了方便切换,因此将CPU占用率和内存使用率最为切换异步任务处理方式的依据。
步骤S2032,判断CPU占用率是否小于或等于第一预设阈值;
本实施例中,预先设置第一预设阈值,数值不限,例如,CPU占用率50%和内存使用率40%,由于已监控到了实际场景中实际的CPU占用率和实际的内存使用率,因此可判断出CPU占用率是否小于或等于第一预设阈值。
步骤S2033,若CPU占用率小于或等于第一预设阈值,则判断内存使用率是否存在大于第二预设阈值;
步骤S2034,若内存使用率大于第二预设阈值,则确定预置指定异步任务处理方式开关打开,得到指定异步任务处理方式。
本实施例中,若CPU占用率小于或等于第一预设阈值,则判断内存使用率是否存在大于第二预设阈值。由于是采用的默认异步任务处理方式与指定异步任务处理方式相互结合的方式,因此可以根据实际场景的需求灵活的选择不同的异步任务处理方式。
参照图5,图5为图2中步骤S50一实施例的细化流程示意图。本实施例中,步骤S50,基于任务参数和异步任务处理方式执行待执行任务,包括以下步骤:
步骤S501,根据预置异步任务处理方式配置表中的预置异步任务处理方式的优先级,获得优先级最高的异步任务处理方式;
本实施例中,根据预置异步任务处理方式配置表中的预置处理方式的优先级,获得优先级最高的异步任务处理方式,例如,quartz任务调度的优先级高于消息队列、消息队列的优先级高于异步多线程,则在使用时,优先使用quartz任务调度,quartz,即开源的任务日程管理系统。
步骤S502,根据异步任务处理方式确定任务步骤数据,并将任务步骤数据作为待组装的任务参数的一部分,其中,待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
本实施例中,根据异步任务处理方式可得到与各个任务对应的任务步骤数据,例如,若当前的异步任务处理方式为quartz任务,则先将quartz任务的任务步骤数据作为待组装的任务参数的一部分,还可以将任务步骤数据写入任务调度表,抓取任务记录后执行任务。
步骤S503,基于待组装的任务参数和异步任务处理方式执行待执行任务。
本实施例中,由于可通过不同的待组装的任务参数生成不同的待执行任务,且可控制每个待执行任务的任务执行顺序和任务处理时效,又由于预先获取到了异步任务处理方式,因此可根据待组装的任务参数和异步任务处理方式执行待执行任务。
参照图6,图6为图5中步骤S503一实施例的细化流程示意图。本实施例中,步骤S503,基于待组装的任务参数和异步任务处理方式执行待执行任务包括以下步骤:
步骤S5031,判断任务步骤数据中是否包括多个步骤;
本实施例中,判断是否包括多个步骤的目的是,若是在某些高并发的场景下,则可以将多个步骤进行并发处理,相较于按照顺序执行的方式,并发处理的方式可节约一定的时间。
步骤S5032,若任务步骤数据中包括多个步骤,则判断多个步骤是否符合并发处理的条件;
本实施例中,预先设置了触发并发处理的条件,若任务步骤包括多个步骤,则执行并发处理的步骤。
步骤S5033,若多个步骤符合并发处理的条件,则基于待组装的任务参数和异步任务处理方式,采用多个步骤通过并发的形式执行待执行任务;
本实施例中,只有在符合并发处理的条件时,触发并发处理的指令,通过并发的形式处理任务可以节约时间。
步骤S5034,若多个步骤不符合并发处理的条件,则基于待组装的任务参数和异步任务处理方式,按照多个步骤的预置顺序执行待执行任务。
本实施例中,不符合并发处理的条件时,则按照多个步骤的预置顺序处理任务。
参照图7,图7为图5中步骤S502一实施例的细化流程示意图。本实施例中,步骤S502,根据异步任务处理方式确定任务步骤数据,并将任务步骤数据作为待组装的任务参数的一部分,其中,待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据,包括以下步骤:
步骤S5021,遍历异步任务处理方式,判断异步任务处理方式是否包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类;
本实施例中,若异步任务处理方式包括quartz任务、消息队列和异步多线程中的至少一个种类,则根据当前的异步任务处理方式确定任务步骤,其中,quartz任务用于:将任务记录写入任务调度表、抓取任务记录和执行任务;消息队列用于:消息消费端从消息中间件拉取新消息,其中,消息中间件的消息来自于将任务参数以消息体推送到消息中间件,消息消费端解析消息体和执行任务;异步多线程用于:从线程池里获取可用线程和根据可用线程执行任务。
可依次遍历异步任务处理方式,判断异步任务处理方式是否包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类。
步骤S5022,若异步任务处理方式包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类,则获取与异步任务处理方式相对应的任务步骤数据,并将任务步骤数据作为待组装的任务参数的一部分,其中,待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
本实施例中,每种异步任务处理方式都有与之对应的任务步骤数据,只有在异步任务处理方式包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类时,才会获取任务步骤数据。
参照图8,图8为图2中步骤S40的细化流程示意图。本实施例中,步骤S40,通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据包括:
步骤S401,通过哈希算法建立任务参数组装模板与待组装的任务参数之间的匹配关系;
步骤S402,基于匹配关系,通过任务参数组装模板对当前待组装的任务参数进行组装,得到待执行任务,待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
本实施例中,通过哈希算法建立任务参数组装模板与待组装的任务参数之间的匹配关系,并以键值对的形式来来构建这种匹配关系。当接收到异步任务请求时,根据预先建立的匹配关系将指定的待组装的任务参数组装进任务参数组装模板,从而得到待执行的任务。
参照图9,图9为本发明异步任务处理装置一实施例的功能模块示意图。本实施例中,异步任务处理装置包括以下模块:
接收模块10,用于接收异步任务请求,异步任务请求包含异步任务的任务类型;
任务信息选择模块20,用于根据任务类型确定与异步任务请求对应的任务信息,其中,任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
任务参数组装模板选择模块30,用于根据任务信息确定任务参数组装模板;
组装模块40,用于通过任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
执行模块50,用于基于待组装的任务参数和异步任务处理方式执行待执行任务。
本实施例中,通过本装置中的任务信息选择模块可以确定异步任务处理方式、任务处理时效和任务数量,从而实现更灵活地选择异步任务处理方式的目的,可提高异步任务处理的效率。
本发明还提供一种计算机可读存储介质。
本实施例中,所述计算机可读存储介质上存储有异步任务处理程序,所述异步任务处理程序被处理器执行时实现如上述任一项实施例中所述的异步任务处理方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (10)
1.一种异步任务处理方法,其特征在于,所述异步任务处理方法包括以下步骤:
接收异步任务请求,所述异步任务请求包含异步任务的任务类型;
根据所述任务类型确定与所述异步任务请求对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
根据所述任务信息确定任务参数组装模板;
通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务。
2.如权利要求1所述的异步任务处理方法,其特征在于,所述根据所述任务类型确定与所述异步任务请求对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式,包括以下步骤:
通过轮询的方式在预置异步任务处理方式配置表中查询与所述异步任务请求相对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
根据所述任务信息,判断预置指定异步任务处理方式开关是否打开;
若预置指定异步任务处理方式开关打开,则得到指定异步任务处理方式;
若预置指定异步任务处理方式开关关闭,则得到默认异步任务处理方式。
3.如权利要求2所述的异步任务处理方法,其特征在于,所述若预置指定异步任务处理方式开关打开,则得到指定异步任务处理方式包括以下步骤:
通过预置监控程序监控CPU占用率和内存使用率;
判断所述CPU占用率是否小于或等于第一预设阈值;
若所述CPU占用率小于或等于所述第一预设阈值,则判断所述内存使用率是否大于第二预设阈值;
若所述内存使用率大于所述第二预设阈值,则确定预置指定异步任务处理方式开关打开,得到指定异步任务处理方式。
4.如权利要求1所述的异步任务处理方法,其特征在于,所述基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务,包括以下步骤:
根据预置异步任务处理方式配置表中的预置异步任务处理方式的优先级,获得优先级最高的异步任务处理方式;
根据所述异步任务处理方式确定任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务。
5.如权利要求4所述的异步任务处理方法,其特征在于,所述基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务包括以下步骤:
判断所述任务步骤数据中是否包括多个步骤;
若所述任务步骤数据中包括多个步骤,则判断所述多个步骤是否符合并发处理的条件;
若所述多个步骤符合并发处理的条件,则基于所述待组装的任务参数和所述异步任务处理方式,采用所述多个步骤通过并发的形式执行所述待执行任务;
若所述多个步骤不符合并发处理的条件,则基于所述待组装的任务参数和所述异步任务处理方式,按照所述多个步骤的预置顺序执行所述待执行任务。
6.如权利要求4所述的异步任务处理方法,其特征在于,所述根据所述异步任务处理方式确定任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据包括以下步骤:
遍历所述异步任务处理方式,判断所述异步任务处理方式是否包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类;
若所述异步任务处理方式包括开源的任务日程管理系统、消息队列和异步多线程中的至少一个种类,则获取与所述异步任务处理方式相对应的任务步骤数据,并将所述任务步骤数据作为待组装的任务参数的一部分,其中,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
7.如权利要求1-6任一项所述的异步任务处理方法,其特征在于,所述通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据包括:
通过哈希算法建立任务参数组装模板与待组装的任务参数之间的匹配关系;
基于所述匹配关系,通过所述任务参数组装模板对当前待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据。
8.一种异步任务处理装置,其特征在于,所述异步任务处理装置包括以下模块:
接收模块,用于接收异步任务请求,所述异步任务请求包含异步任务的任务类型;
任务信息选择模块,用于根据所述任务类型确定与所述异步任务请求对应的任务信息,其中,所述任务信息包括:异步任务处理方式、任务处理时效和任务数量,所述异步任务处理方式为指定异步任务处理方式或默认异步任务处理方式;
任务参数组装模板选择模块,用于根据所述任务信息确定任务参数组装模板;
组装模块,用于通过所述任务参数组装模板对待组装的任务参数进行组装,得到待执行任务,所述待组装的任务参数包括:任务步骤数据、任务时效数据和待执行任务类型数据;
执行模块,用于基于所述待组装的任务参数和所述异步任务处理方式执行所述待执行任务。
9.一种异步任务处理设备,其特征在于,所述异步任务处理设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的异步任务处理程序,所述异步任务处理程序被所述处理器执行时实现如权利要求1-7中任一项所述的异步任务处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有异步任务处理程序,所述异步任务处理程序被处理器执行时实现如权利要求1-7中任一项所述的异步任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033028.0A CN111240864A (zh) | 2020-01-13 | 2020-01-13 | 异步任务处理方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033028.0A CN111240864A (zh) | 2020-01-13 | 2020-01-13 | 异步任务处理方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111240864A true CN111240864A (zh) | 2020-06-05 |
Family
ID=70868913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010033028.0A Pending CN111240864A (zh) | 2020-01-13 | 2020-01-13 | 异步任务处理方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240864A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328392A (zh) * | 2020-10-27 | 2021-02-05 | 金蝶软件(中国)有限公司 | 一种数据处理方法及相关设备 |
CN112486654A (zh) * | 2020-12-08 | 2021-03-12 | 浙江诺诺网络科技有限公司 | 一种异步慢任务调度方法、装置、设备及介质 |
CN113778644A (zh) * | 2021-08-18 | 2021-12-10 | 煤炭科学研究总院 | 任务的处理方法、装置、设备及存储介质 |
CN117221324A (zh) * | 2023-11-09 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 云服务器的创建任务分发方法、装置、电子设备及介质 |
-
2020
- 2020-01-13 CN CN202010033028.0A patent/CN111240864A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328392A (zh) * | 2020-10-27 | 2021-02-05 | 金蝶软件(中国)有限公司 | 一种数据处理方法及相关设备 |
CN112328392B (zh) * | 2020-10-27 | 2024-05-28 | 金蝶软件(中国)有限公司 | 一种数据处理方法及相关设备 |
CN112486654A (zh) * | 2020-12-08 | 2021-03-12 | 浙江诺诺网络科技有限公司 | 一种异步慢任务调度方法、装置、设备及介质 |
CN113778644A (zh) * | 2021-08-18 | 2021-12-10 | 煤炭科学研究总院 | 任务的处理方法、装置、设备及存储介质 |
CN113778644B (zh) * | 2021-08-18 | 2024-01-26 | 煤炭科学研究总院有限公司 | 任务的处理方法、装置、设备及存储介质 |
CN117221324A (zh) * | 2023-11-09 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 云服务器的创建任务分发方法、装置、电子设备及介质 |
CN117221324B (zh) * | 2023-11-09 | 2024-03-08 | 腾讯科技(深圳)有限公司 | 云服务器的创建任务分发方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111240864A (zh) | 异步任务处理方法、装置、设备及计算机可读存储介质 | |
CN107832126B (zh) | 一种线程的调整方法及其终端 | |
CN106557369B (zh) | 一种多线程的管理方法及系统 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN110187753B (zh) | 应用程序控制方法、装置、终端和计算机可读存储介质 | |
US8424007B1 (en) | Prioritizing tasks from virtual machines | |
WO2021159638A1 (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN109814994B (zh) | 一种动态调度线程池的方法及终端 | |
JP2018527683A (ja) | 端末アプリケーションをロードする方法及び装置 | |
CN107995286B (zh) | 基于dubbo平台的服务自动启停方法、服务器及存储介质 | |
CN110990142A (zh) | 并发任务处理方法、装置、计算机设备和存储介质 | |
CN111061556A (zh) | 执行优先级任务的优化方法、装置、计算机设备及介质 | |
CN111367693B (zh) | 基于消息队列调度插件任务的方法、系统、设备及介质 | |
CN112395107A (zh) | 税控设备控制的方法、装置、存储介质及电子设备 | |
CN110838987B (zh) | 队列限流方法、存储介质 | |
CN108984290A (zh) | 任务调度方法和系统 | |
CN114461385A (zh) | 线程池调度方法、装置、设备以及可读存储介质 | |
US10523746B2 (en) | Coexistence of a synchronous architecture and an asynchronous architecture in a server | |
WO2019029721A1 (zh) | 任务的调度方法、装置、设备及存储介质 | |
CN110609758A (zh) | 基于队列的设备运行方法、计算机设备及可读存储介质 | |
CN113986516A (zh) | 基于鸿蒙系统的分布式任务调度系统 | |
CN114546677A (zh) | 一种消息执行处理方法、装置、电子设备和存储介质 | |
CN113391927A (zh) | 一种业务事件的处理方法、装置、系统及存储介质 | |
CN116848508A (zh) | 基于强化学习模型调度任务以供计算机执行 | |
WO2002023329A2 (en) | Processor resource scheduler and method |
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 |