任务处理方法及装置制造方法及图纸

技术编号:16755256 阅读:20 留言:0更新日期:2017-12-09 01:55
本发明专利技术实施例提供一种任务处理方法及装置,该方法包括:获取所述应用程序生成的待处理任务、及所述待处理任务的类型;根据所述待处理任务的类型,在队列集合中确定目标队列,所述队列集合中包括多个队列;将所述待处理任务缓存至所述目标队列;在确定所述目标队列中、所述待处理任务的前一个任务处理完成之后,通过线程池中的线程对所述待处理任务进行处理,所述线程池中的线程个数小于所述队列集合中的队列的个数。用于避免应用程序由于并行运行的线程个数太多而出现的异常的问题。

Task processing method and device

The embodiment of the invention provides a task processing method and device. The method includes: obtaining the type of application generated pending tasks, and the processing task; according to the types of the pending tasks, in determining the target set in the queue queue, the queue set includes a plurality of queue; the pending task cache to the target queue; pending tasks in the determination of the target in the queue, the first task is completed, the thread in the thread pool on the pending tasks, the number of threads in the thread pool queue number less than the queue in the set. An exception that avoids the application of an application because of the number of threads running in parallel.

【技术实现步骤摘要】
任务处理方法及装置
本专利技术实施例涉及计算机
,尤其涉及一种任务处理方法及装置。
技术介绍
在应用程序(软件)中,有很多耗时的业务逻辑,例如,获取服务器的数据、存储配置信息、定时上报日志信息等,为了保证应用程序的正常运行,可以通过IntentService类(服务组件)实现将耗时的业务逻辑。在应用程序的运行过程中,当应用程序运行到预设节点时,应用程序为了实现预设功能,应用程序可以对对应业务逻辑进行实例化,以得到实例化的任务,并通过实例化的任务完成相应的功能。其中,每一个业务逻辑用于实现一种功能,实例化的任务可以实现业务逻辑所提供的功能,且实例化的任务还可以具有自定义的功能。在应用程序运行至不同的节点时,可以对同一业务逻辑进行不同实例化,以得到多个任务,该多个任务均可以实现业务逻辑所提供的功能,但是该多个任务可能会有自定义功能可能会有差异,其中,一种业务逻辑实例化得到的多个任务串行执行,不同业务逻辑实例化得到的多个任务可以并行执行。在现有技术中,在一种业务逻辑被实例化得到任务之后,通过服务组件创建任务对应的线程,并通过线程执行该任务。然而,当实例化的任务较多时,需要创建多个线程,在线程个数较多时,可能会导致应用程序运行异常。
技术实现思路
本专利技术实施例提供一种任务处理方法及装置,避免了应用程序由于并行运行的线程个数太多而出现的异常的问题。第一方面,本专利技术实施例提供一种任务处理方法,包括:获取所述应用程序生成的待处理任务、及所述待处理任务的类型;根据所述待处理任务的类型,在队列集合中确定目标队列,所述队列集合中包括多个队列;将所述待处理任务缓存至所述目标队列;在确定所述目标队列中、所述待处理任务的前一个任务处理完成之后,通过线程池中的线程对所述待处理任务进行处理,所述线程池中的线程个数小于所述队列集合中的队列的个数。在一种可能的实施方式中,所述在确定所述目标队列中、所述待处理任务的前一个任务处理完成之后,通过线程池中的线程对所述待处理任务进行处理,包括:获取所述目标队列中、所述待处理任务的前一个任务对应的处理完成消息;根据所述处理完成消息,通过所述线程池中的线程对所述待处理任务进行处理。在另一种可能的实施方式中,所述根据所述处理完成消息,通过所述线程池中的线程对所述待处理任务进行处理,包括:根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列;在确定所述待处理任务位于所述缓存队列的队首、且所述线程池中存在空闲线程时,通过所述空闲线程对所述待处理任务进行处理。在另一种可能的实施方式中,所述根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列之前,还包括:在确定所述应用程序启动之后,创建所述缓存队列;在确定所述队列集合中的队列中存在第一个任务时,将每一个队列中的第一个任务存储至所述缓存队列。在另一种可能的实施方式中,根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列之后,还包括:将所述待处理任务移出所述目标队列。在另一种可能的实施方式中,通过所述空闲线程对所述待处理任务进行处理之后,还包括:将所述待处理任务移出所述缓存队列。第二方面,本专利技术实施例提供一种任务处理装置,包括获取模块、确定模块、存储模块和处理模块,其中,所述获取模块用于,获取所述应用程序生成的待处理任务、及所述待处理任务的类型;所述确定模块用于,根据所述待处理任务的类型,在队列集合中确定目标队列,所述队列集合中包括多个队列;所述存储模块用于,将所述待处理任务缓存至所述目标队列;所述处理模块用于,在确定所述目标队列中、所述待处理任务的前一个任务处理完成之后,通过线程池中的线程对所述待处理任务进行处理,所述线程池中的线程个数小于所述队列集合中的队列的个数。在一种可能的实施方式中,所述处理模块包括获取单元和处理单元,其中,所述获取单元用于,获取所述目标队列中、所述待处理任务的前一个任务对应的处理完成消息;所述处理单元用于,根据所述处理完成消息,通过所述线程池中的线程对所述待处理任务进行处理。在另一种可能的实施方式中,所述处理单元具体用于:根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列;在确定所述待处理任务位于所述缓存队列的队首、且所述线程池中存在空闲线程时,通过所述空闲线程对所述待处理任务进行处理。在另一种可能的实施方式中,所述装置还包括创建模块,其中,所述创建模块用于,在所述处理单元所述根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列之前,在确定所述应用程序启动之后,创建所述缓存队列;所述存储模块还用于,在确定所述队列集合中的队列中存在第一个任务时,将每一个队列中的第一个任务存储至所述缓存队列。在另一种可能的实施方式中,所述存储模块还用于:在所述处理单元根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列之后,将所述待处理任务移出所述目标队列。在另一种可能的实施方式中,所述存储模块还用于:在所述处理单元通过所述空闲线程对所述待处理任务进行处理之后,将所述待处理任务移出所述缓存队列。本专利技术实施例提供的任务处理方法及装置,在应用程序实例化得到待处理任务之后,重构服务组件获取待处理任务的类型,根据待处理任务的类型确定用于缓存待处理任务的目标队列,并将待处理任务缓存至目标队列。重构服务组件通过共享线程池中的线程对一个队列中的任务进行线程处理,对不同队列中的任务进行并行处理,直至重构服务组件确定目标队列中、待处理任务的前一个任务被处理完成之后,重构服务组件再通过线程池中的线程对待处理任务进行处理,这样,可以保证同一队列中的任务被串行处理,不同队列中的任务被并行处理,进一步的,由于线程池中的线程个数小于队列集合中的队列的个数,这样,在应用程序生成的任务的种类较多时,可以保证并行运行的线程个数可以在一定范围内,进而可以避免应用程序由于并行运行的线程个数太多而出现的异常的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的任务处理方法的应用场景示意图;图2为本专利技术实施例提供的任务处理方法的流程示意图;图3为本专利技术实施例提供的对待处理任务进行处理方法的流程示意图;图4为本专利技术实施例提供的队列结构示意图;图5为本专利技术实施例提供的任务处理装置的结构示意图一;图6为本专利技术实施例提供的任务处理装置的结构示意图二。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的任务处理方法的应用场景示意图。请参见图1,安装在终端设备中的应用程序中包括多个业务逻辑和重构服务组件,每一种业务逻辑用于实现一种功能,本申请中所示的业务逻辑均为较为耗时的业务逻本文档来自技高网...
任务处理方法及装置

【技术保护点】
一种任务处理方法,其特征在于,包括:获取所述应用程序生成的待处理任务、及所述待处理任务的类型;根据所述待处理任务的类型,在队列集合中确定目标队列,所述队列集合中包括多个队列;将所述待处理任务缓存至所述目标队列;在确定所述目标队列中、所述待处理任务的前一个任务处理完成之后,通过线程池中的线程对所述待处理任务进行处理,所述线程池中的线程个数小于所述队列集合中的队列的个数。

【技术特征摘要】
1.一种任务处理方法,其特征在于,包括:获取所述应用程序生成的待处理任务、及所述待处理任务的类型;根据所述待处理任务的类型,在队列集合中确定目标队列,所述队列集合中包括多个队列;将所述待处理任务缓存至所述目标队列;在确定所述目标队列中、所述待处理任务的前一个任务处理完成之后,通过线程池中的线程对所述待处理任务进行处理,所述线程池中的线程个数小于所述队列集合中的队列的个数。2.根据权利要求1所述的方法,其特征在于,所述在确定所述目标队列中、所述待处理任务的前一个任务处理完成之后,通过线程池中的线程对所述待处理任务进行处理,包括:获取所述目标队列中、所述待处理任务的前一个任务对应的处理完成消息;根据所述处理完成消息,通过所述线程池中的线程对所述待处理任务进行处理。3.根据权利要求2所述的方法,其特征在于,所述根据所述处理完成消息,通过所述线程池中的线程对所述待处理任务进行处理,包括:根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列;在确定所述待处理任务位于所述缓存队列的队首、且所述线程池中存在空闲线程时,通过所述空闲线程对所述待处理任务进行处理。4.根据权利要求3所述的方法,其特征在于,所述根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列之前,还包括:在确定所述应用程序启动之后,创建所述缓存队列;在确定所述队列集合中的队列中存在第一个任务时,将每一个队列中的第一个任务存储至所述缓存队列。5.根据权利要求3或4所述的方法,其特征在于,根据所述处理完成消息,将所述待处理任务存储至所述线程池对应的缓存队列之后,还包括:将所述待处理任务移出所述目标队列。6.根据权利要求3或4所述的方法,其特征在于,通过所述空闲线程对所述待处理任务进行处理之后,还包括:将所述待处理任务移出所述缓存队列。7.一种任务处理装置,其特征在于,包括获取模块、确定模块、存储模块和处理模块...

【专利技术属性】
技术研发人员:吴朝彬
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1