一种任务处理方法及装置与流程

文档序号:16997901发布日期:2019-03-02 01:31阅读:120来源:国知局
一种任务处理方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种任务处理方法及装置。



背景技术:

随着云计算技术的发展,越来越多的it服务系统逐渐向云平台迁移,构建基于云平台的服务已经成为主流方式。所谓云平台,就是利用云计算技术和思想构建起来的系统平台,提供数据计算、数据存储服务以及集成特殊应用的服务平台。

目前,常用的云平台有阿里云、microsoftazure、amazonwebservices等,各家云平台中会搭建有多个集群,每个集群中包含有一组各自独立的服务器,通过集群操作能够提高云平台的稳定性和数据处理能力。并且各家云平台提供的自动调度功能能够合理的处理好各个集群缩放场景,为待处理任务分配合理的资源,通过不同场景下对集群资源的合理配置,能够避免出现集群闲置和任务处理能力不足的情况。

然而,现有的云平台所提供的自动调度功能在应对不同类型的任务时,无法对集群资源进行灵活配置,使得集群在任务处理过程中响应速度慢,另外,当任务处理出现异常时无法正常关闭集群,导致资源浪费。



技术实现要素:

有鉴于此,本发明提供一种任务处理方法及装置,主要目的在于实现集群资源的灵活配置,保证集群的响应速度。

为了解决上述问题,本发明主要提供如下技术方案:

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

根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务,所述消息队列中标记有任务处理状态;

在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态,所述集群运行状态包括异常状态、正常状态以及空闲状态;

关闭所述异常状态以及所述空闲状态的集群。

进一步地,所述根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务包括:

根据消息队列中待处理的任务量确定需要开启的集群数量;

根据所述需要开启的集群数量以及集群运行状态开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务。

进一步地,所述在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态包括:

按照预置时间间隔获取所述消息队列中任务处理状态,所述任务处理状态包括任务正常、任务异常以及空闲;

在任务处理过程中当所述任务处理状态为任务异常、任务正常或者任务完成时,对应更新所述任务所在集群的集群运行状态为异常状态、正常状态或者空闲状态。

进一步地,在所述关闭所述异常状态以及所述空闲状态的集群之后,所述方法还包括:

检测关闭后的集群中是否存在未处理完成的任务;

若存在,将所述未处理完成的任务发送至所述消息队列中,并调整所述未处理完成的任务在所述消息队列中的任务处理顺序;

按照调整后的消息队列中的任务处理顺序向集群分配任务。

进一步地,所述按照调整后的消息队列中的任务处理顺序向集群分配任务包括:

按照调整后的消息队列中任务处理顺序优先向集群分配所述未处理完成的任务。

进一步地,在所述在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态之后,所述方法还包括:

根据所述更新后的集群运行状态设置集群的活跃程度;

根据所述消息队列中任务处理的先后顺序,按照集群活跃程度由高到低的顺序向集群分配任务。

进一步地,在所述关闭所述异常状态以及所述空闲状态的集群之后,所述方法还包括:

当所述消息队列中待处理的任务量达到预设阈值后,根据所述集群运行状态调整集群开启数量。

为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的任务处理方法。

为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的任务处理方法。

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

第一分配单元,用于根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务,所述消息队列中标记有任务处理状态;

更新单元,用于在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态,所述集群运行状态包括异常状态、正常状态以及空闲状态;

关闭单元,用于关闭所述异常状态以及所述空闲状态的集群。

进一步地,所述第一分配单元包括:

确定模块,用于根据消息队列中待处理的任务量确定需要开启的集群数量;

分配模块,用于根据所述需要开启的集群数量以及集群运行状态开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务。

进一步地,所述更新单元包括:

获取模块,用于按照预置时间间隔获取所述消息队列中任务处理状态,所述任务处理状态包括任务正常、任务异常以及空闲;

更新模块,用于在任务处理过程中当所述任务处理状态为任务异常、任务正常或者任务完成时,对应更新所述任务所在集群的集群运行状态为异常状态、正常状态或者空闲状态。

进一步地,所述装置还包括:

检测单元,用于检测关闭后的集群中是否存在未处理完成的任务;

发送单元,用于若检测关闭后的集群中存在未处理完成的任务,将所述未处理完成的任务发送至所述消息队列中,并调整所述未处理完成的任务在所述消息队列中的任务处理顺序;

第二分配单元,用于按照调整后的消息队列中的任务处理顺序向集群分配任务。

进一步地,所述第二分配单元,具体用于按照调整后的消息队列中任务处理顺序优先向集群分配所述未处理完成的任务。

进一步地,所述装置还包括:

设置单元,用于根据所述更新后的集群运行状态设置集群的活跃程度;

第三分配单元,用于根据所述消息队列中任务处理的先后顺序,按照集群活跃程度由高到低的顺序向集群分配任务。

进一步地,所述装置还包括:

调整单元,用于当所述消息队列中待处理的任务量达到预设阈值后,根据所述集群运行状态调整集群开启数量。

借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:

本发明实施例提供的一种任务处理方法及装置,通过在集群正常运行时根据消息队列中待处理的任务量开启预设数量的集群,合理的规划集群的运行数量,保证了任务处理效率的同时避免了资源浪费,同时在任务处理过程中根据任务处理状态更新集群运行状态,这里的集群运行状态包括异常状态、正常状态以及空闲状态,并且根据更新后的集群运行状态关闭异常状态以及空闲状态的集群,及时关闭无效任务对应的集群。与现有技术的任务处理方法相比,本发明实施例在任务出现异常时,能够及时关闭异常任务对应的集群,并且更新集群运行状态,使得各个集群可以灵活定义自己的运行状态,避免了无效集群的资源占用。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

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

图2为本发明实施例提供的另一种任务处理方法流程图;

图3为本发明实施例确定开启集群数量的方法流程图;

图4为本发明实施例关闭异常集群的方法流程图;

图5为本发明实施例任务分配的方法流程图;

图6为本发明实施例提供的一种任务处理装置的组成框图;

图7为本发明实施例提供的另一种任务处理装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

本发明实施例提供了一种任务处理方法,如图1所示,该方法在任务处理过程中出现异常任务时,能够及时更新集群运行状态,并根据集群运行状态调整消息队列中的任务处理顺序,保证了任务处理效率,对此本发明实施例提供以下具体步骤:

101、根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务。

其中,消息队列是在消息的传输过程中保存处理任务的容器,并且消息队列里中标记有任务处理状态,如任务处理成功、任务处理中或者任务处理失败等信息,这里的处理任务可以为监控任务、实时流量计算任务或者爬虫任务等等,另外,如不同任务所需要的集群类型以及集群数量有所不同,对于需要计算速度较高的任务可以使用并行计算集群,对于需要计算量较大的任务可以使用高性能计算集群,当然如果消息队列中待处理任务较多,则需要开启适合数量的集群,本发明实施例对集群类型以及集群数量不进行限定。

需要说明的是,在开启预设数量的集群之前,可能当前已经开启有若干集群,需要预先扫描集群运行状态,如果扫描当前10台集群处于开启状态,如果根据消息队列中待处理的任务量计算得到的适合开启的集群数量为20,则预设数量为10,只需要在此基础上再开启10台集群即可,当然如果此时没有任何集群处于开启状态,则预设数量为20,需要开启20台集群。因此,本发明实施例的预设数量还需根据当前集群运行状态来确定。

在确定需要开启预设数量的集群之后,按照消息队列中任务处理顺序向开启的集群分配任务,这里每个任务对应有不同的集群,这里任务处理顺序的排序方式可以通过预先将消息队列中的任务设置排序序号,根据排序序号向集群分发任务,还可以通过预先将消息队列中的任务按照不同任务类型排序,将不同任务类型排序结果向集群分发任务,本发明实施例对任务处理顺序的确定方式不进行限定。

对于本发明实施例,在集群正常运行时候,根据消息队列中待处理的任务量开启适当数量的集群,如果待处理任务较少时,则开启少量集群,这样不会造成资源浪费,如果待处理的任务量增多时,则按照相应比例开启合适数量的集群来处理任务,保证了集群任务处理效率。

102、在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态。

当集群对待处理的任务量进行处理的过程中,会按照设定的时间间隔从消息队列中获取任务信息,而消息队列中标记的任务处理状态也会随着任务的处理而实时变化,如果任务正在处理,则任务处理状态为任务正常,如果任务已处理完毕,则任务处理状态为任务完成,如果任务处理异常,则任务处理状态为任务异常。

集群中不同的任务处理状态会表明集群不同的运行状态,这里的集群运行状态可以包括正常状态、异常状态以及空闲状态,如果集群中的任务处理状态为任务正常,说明集群正在运行,则更新集群运行状态为正常状态;如果集群中的任务处理状态为任务完成,说明集群已经处理完任务,则更新集群运行状态为空闲状态;如果集群中的任务处理状态为任务异常,说明集群在任务处理过程中出现异常,则更新集群运行状态为异常状态。

需要说明的是,由于集群通常为多个机器共同运行来处理当前任务,如果集群运行状态为正常状态,则说明集群中所有机器的任务处理状态为任务正常,如果集群运行状态为异常状态,则说明是集群中某一机器或者多个机器任务处理失败,此时会等待集群中所有机器都完成目前处理的任务再更新集群运行状态为异常状态,如果集群运行状态为空闲状态,则说明集群中所有机器的任务处理状态为任务完成。

103、关闭所述异常状态以及所述空闲状态的集群。

集群在任务处理失败时会将集群运行状态更新为异常状态,由于异常状态的集群无法正常运行或者系统设置无法正常运行,则进一步关闭异常状态的集群,以避免过多的集群资源占用。同理,空闲状态的集群表明向该集群分配的任务已经处理完毕,无需保持开启状态来占用过多的集群资源,进一步关闭空闲状态的集群。

针对本发明的实施例提供的一种任务处理方法,通过在集群正常运行时根据消息队列中待处理的任务量开启预设数量的集群,合理的规划集群的运行数量,保证了任务处理效率的同时避免了资源浪费,同时在任务处理过程中根据任务处理状态更新集群运行状态,这里的集群运行状态包括异常状态、正常状态以及空闲状态,并且根据更新后的集群运行状态关闭异常状态以及空闲状态的集群,及时关闭无效任务对应的集群。与现有技术的任务处理方法相比,本发明实施例在任务出现异常时,能够及时关闭异常任务对应的集群,并且更新集群运行状态,使得各个集群可以灵活定义自己的运行状态,避免了无效集群的资源占用。

以下为了更加详细地说明本发明提出的一种任务处理方法,特别是在任务处理过程中,集群运行状态为异常状态时,如何处理异常状态集群以及该异常状态集群中未处理完成的任务,本发明实施例还提供了另一种任务处理方法,如图2所示,该方法的具体的步骤包括:

201、根据消息队列中待处理的任务量确定需要开启的集群数量。

对于本发明实施例,当任务被发送到消息队列中后,消息队列充当中间人,将任务从消息队列分配到集群,进而保证任务传递的可靠性。进一步根据消息队列中待处理的任务量确定需要开启的集群数量,例如,消息队列中的任务量需要开启20台集群5小时完成,需要开启10台集群10小时完成,由于开启集群占用资源消耗较大,并非开启数量多的集群完成速度越快越好,通常情况根据实际需要任务完成时间开启合适数量的集群。

通过根据消息队列中待处理的任务量确定需要开启的集群数量,能够合理规划已经计划的任务和及时的任务,确保集群在计划时间内完成消息队列中计划的待处理任务量,保证集群的响应速度。

202、根据所述需要开启的集群数量以及集群运行状态开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务。

由于不同集群当前的运行状态可能有所不同,有的集群处于空闲状态,有的集群可能正在处理任务,因此在进行任务分配之前通过扫描集群运行状态获取集群当前的运行状态,进一步根据需要开启的集群数量结合集群运行状态开启预设数量的集群,具体的流程示意图可以如图3所示,首先扫描消息队列判断是否存在待处理任务,如果是则根据消息队列中待处理任务确定需要开启的集群数量,进一步扫描集群运行状态来判断是否存在空闲状态的集群,根据需要开启数量的集群以及集群运行状态开启预设数量的集群。例如,如果扫描集群运行状态获取到当前有10台集群处于运行状态,而需要开启的集群数量为20台,则预设数量为10台,从而保证处于运行状态的集群数量为20台,如果扫描集群运行状态获取到当前没有集群处于运行状态,而需要开启的集群数量为20台,则预设数量为20台。

对于本发明实施例,如果当前存在若干运行状态的集群,则在相应运行状态的集群基础上,再开启适当数量的集群,当然如果当前所有集群都处于空闲状态,则直接开启需要开启数量的集群,进一步根据消息队列中任务处理顺序向开启的集群分配任务。

203、按照预置时间间隔获取所述消息队列中任务处理状态。

在对消息队列中待处理的任务量进行处理的过程中,消息队列会定时向集群分配任务,这里的处理任务可以为监控任务、实时流量计算任务或者爬虫任务等等,并且在任务处理过程中实时更新任务处理状态,如任务处理成功、任务处理中或者任务处理失败等信息,通常情况下可以将任务处理状态归纳为任务正常、任务异常以及任务完成,如果任务正在处理中,则任务处理状态为任务正常,如果任务已处理完毕,则任务处理状态为任务完成,如果任务处理过程中发生异常,则任务处理状态为任务异常。进一步按照预置时间间隔获取消息队列中任务处理状态,这里的预置时间间隔可以为半小时、1小时等,本发明实施例不进行限定。

需要说明的是,由于集群中包括有若干个机器,每个机器所处理的任务有所不同,本发明实施例还可以将集群中各个机器的任务处理状态保存在任务处理状态表中,从而方便集群监控各个机器当前任务处理的状态。

对于本发明实施例,通过照预置时间间隔获取消息队列中任务处理状态能够实时了解任务的处理进度,以防发生异常状况时能够合理的规划消息队列中的任务处理顺序,保证集群的处理效率。

204、在任务处理过程中当所述任务处理状态为任务异常、任务正常或者任务完成时,对应更新所述任务所在集群的集群运行状态为异常状态、正常状态或者空闲状态。

由于集群在任务处理过程中可能出现异常或出错,此时获取到的任务处理状态为任务异常,进一步根据集群中任务处理状态对应更新集群运行状态,将该集群运行状态更新为异常状态,表明该集群处理任务过程中遇到问题,等待关闭,需要说明的是,这里的异常可以包括两种情况,一种是可恢复异常,如网络延迟,任务分配延迟等问题,对于可恢复异常该集群通常在等待若干时间后集群会自行恢复正常运行;另一种是不可恢复异常,如网络带宽异常、集群硬件问题或者系统定义的异常状况等,对于不可恢复异常该集群在等待若干时间后仍然无法正常运行,通常情况下,这里的异常状态指的是不可恢复异常状态,因此在发生不可恢复异常情况后,任务处理状态会更新为异常集群的运行状态会更新为异常状态。

例如,百度会对搜索结果的排名上有“蜜罐攻击”,在多次访问百度搜索结果后,百度会返回部分不相关的数据冒充排名,对于这种情况,系统会自定义对百度爬虫定义访问百度量达到一定数值时更新机器为异常状态,在更新异常状态后机器会等待关闭,这样既节省了资源,也避免了百度的蜜罐攻击数据导致系统数据的污染。

相应的,如果任务正在处理中,则获取到集群中的任务处理状态为任务正常,对应更新集群运行状态为正常状态,如果任务已处理完毕,则获取到集群中的任务处理状态为任务完成,对应更新集群运行状态为空闲状态。

需要说明的是,由于集群通常为多个机器共同运行来处理当前任务,如果集群运行状态为正常状态,则说明集群中所有机器的任务处理状态为任务正常,如果集群运行状态为异常状态,则说明是集群中某一机器或者多个机器任务处理失败,此时会等待集群中所有机器都完成目前处理的任务再更新集群运行状态为异常状态,如果集群运行状态为空闲状态,则说明集群中所有机器的任务处理状态为任务完成。

现有技术在出现异常任务集群通常会停止任务处理,并且处于开启状态等待后续处理,而本发明实施例在出现异常任务集群会将该集群运行状态更新为异常状态,并且等待关闭,减少了集群资源浪费。

205、关闭所述异常状态以及所述空闲状态的集群。

集群在任务处理失败时会将集群运行状态更新为异常状态,由于异常状态的集群无法正常运行或者系统设置无法正常运行,则进一步关闭异常状态的集群,以避免过多的集群资源占用。同理,空闲状态的集群表明向该集群分配的任务已经处理完毕,无需保持开启状态来占用过多的集群资源,进一步关闭空闲状态的集群,具体关闭异常状态集群的流程示意图可以如图4所示,首先扫描机器运行状态表,判断机器中是否存在异常状态的机器,如果是,则关闭异常状态的机器。

206、检测关闭后的集群中是否存在未处理完成的任务。

由于关闭后的集群通常是在任务处理过程中遇到的异常,同时等待关闭,而关闭的集群可能还存在消息队列中原本计划完成而未完成的待处理任务,本发明实施例通过检测关闭后的集群中是否存在未处理完成的任务,并对未处理完成的任务进行处理,对于原本计划完成的任务重新进行规划处理,保证了任务完成的时效性。

207、若存在,将所述未处理完成的任务发送至所述消息队列中,并调整所述未处理完成的任务在所述消息队列中的任务处理顺序。

检测关闭后的集群中存在未处理完成的任务,为了保证任务处理的时效性,将检测到未处理完成的任务发送到消息队列中,由于未处理完成的任务属于异常状态集群遗留下来的任务,该任务的时效性相比消息队列中其他任务的优先级较高,从而调整未处理完成的任务在消息队列中的任务处理顺序。

通常情况,在调整未处理完成的任务在消息队列中的任务处理顺序时,会将未处理完成的任务排在消息队列的队首位置,进而优先向开启的集群分配未处理完成的任务,当然还可以根据任务计划完成时间来适应调整任务在消息队列中的顺序,从而保证任务能够按时完成。例如,如果该任务相比原计划已经超时,则将任务插入消息队列的队首的位置,如果该任务相比原计划未超时,则将任务插入消息队列靠近队首的位置即可,本发明实施例不进行限定。

208、按照调整后的消息队列中的任务处理顺序向集群分配任务。

由于调整后的消息队列中相比于之前未调整过的消息队列中的任务处理顺序,会将异常状态关闭的集群中未处理完成的任务对应的处理顺序提前,从而优先处理未处理完成的遗留任务。

需要说明的是,对于消息队列中待处理任务的分配方式可以采取随机分配的方式,还可以采取固定分配的方式,还可以根据集群活跃程度分配的方式,本发明实施例对集群的分配方式不进行限定。

209、根据所述更新后的集群运行状态设置集群的活跃程度。

通常情况下集群在正常运行状态时可以定义不一样的活跃时间,如处理爬虫类任务的集群可以将集群的活跃时间定义在消息队列中接收到爬虫类任务后的时间段,处理搜索引擎类任务的集群可以将集群的活跃时间定义在消息队列中接收到搜索引擎任类任务后的时间段,处于活跃时间的集群处理任务的速度较快,集群响应速度快,本发明实施例通过更新后的集群运行状态获取集群的活跃程度,能够实时了解集群的处理能力,以便根据不同实时根据不同处理能力的集群调整消息队列中任务的分配。

210、根据所述消息队列中任务处理的先后顺序,按照集群活跃程度由高到低的顺序向集群分配任务。

通常情况下,由于活跃程度高的集群任务处理速度快,消息队列会优先分配任务给活跃程度高的集群来处理,而活跃程度低的集群任务处理会比较慢,消息队列会适量减少分配的任务量,合理利用集群资源。

另外,由于消息队列中存在有异常状态集群中未处理完成的任务,并且未处理完成的任务通常排在消息队列的队首或者靠近队首的位置,因此会将未处理完成的任务优先分配给活跃程度较高的集群,从而优先处理异常状态集群中的遗留任务,以保证遗留任务有足够的响应速度。具体的任务分配过程可以如图5所示,首先获取集群的活跃程度,判断集群是否处于活跃时间,如果是,则优先从消息队列获取任务,如果否,则减少从消息列队获取任务,进一步当集群获取到任务后对任务进行处理,并更新消息队列中的任务处理状态。

211、当所述消息队列中待处理的任务量达到预设阈值后,根据所述集群运行状态调整集群开启数量。

需要说明的是,在集群处理任务的过程中,消息队列中还会不断接收到新的任务,而随着消息队列中任务量的不断堆积,已开启集群的数量已无法满足任务的实时处理,需要根据集群运行状态相应调整集群开启的数量。

对于少量任务的处理,正常开启的集群可以维持消息队列中任务的实时处理,当消息队列中待处理任务量达到预设阈值后,正常开启的集群数量无法保证任务完成时间,进一步根据集群运行状态按照任务量比例开启适量空闲状态的集群,以满足消息队列中任务处理的时效性。

针对本发明实施例提供的另一种任务处理方法,在任务出现异常时,能够及时关闭异常任务对应的集群,并且更新集群运行状态,使得各个集群可以灵活定义自己的运行状态,避免了无效集群的资源占用,进一步将异常状态集群中未处理的任务回收到消息队列中,优先将未完成的任务分配至正常状态的集群,保证任务处理效率,通过合理的安排消息队列中的任务以及回收的未处理完成的任务,保证集群的响应速度,另外,由于处于活跃时间的集群处理任务的速度较快,集群响应速度快,通过设置集群的活跃程度,优先将消息队列中待处理的任务分配给活跃程度高的集群,提高了任务的处理效率。

为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的任务处理方法。

为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的任务处理方法。

进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种任务处理装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置用于实现集群资源的灵活配置,保证集群的响应速度,具体如图6所示,该装置包括:

第一分配单元31,可以用于根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务,所述消息队列中标记有任务处理状态;

更新单元32,可以用于在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态,所述集群运行状态包括异常状态、正常状态以及空闲状态;

关闭单元33,可以用于关闭所述异常状态以及所述空闲状态的集群。

针对本发明的实施例提供了一种任务处理装置,通过在集群正常运行时根据消息队列中待处理的任务量开启预设数量的集群,合理的规划集群的运行数量,保证了任务处理效率的同时避免了资源浪费,同时在任务处理过程中根据任务处理状态更新集群运行状态,这里的集群运行状态包括异常状态、正常状态以及空闲状态,并且根据更新后的集群运行状态关闭异常状态以及空闲状态的集群,及时关闭无效任务对应的集群。与现有技术的任务处理方法相比,本发明实施例在任务出现异常时,能够及时关闭异常任务对应的集群,并且更新集群运行状态,使得各个集群可以灵活定义自己的运行状态,避免了无效集群的资源占用。

进一步的,如图7所示,所述装置还包括:

检测单元34,可以用于检测关闭后的集群中是否存在未处理完成的任务;

发送单元35,可以用于若检测关闭后的集群中存在未处理完成的任务,将所述未处理完成的任务发送至所述消息队列中,并调整所述未处理完成的任务在所述消息队列中的任务处理顺序;

第二分配单元36,可以用于按照调整后的消息队列中的任务处理顺序向集群分配任务;

设置单元37,可以用于根据所述更新后的集群运行状态设置集群的活跃程度;

第三分配单元38,可以用于根据所述消息队列中任务处理的先后顺序,按照集群活跃程度由高到低的顺序向集群分配任务;

调整单元39,可以用于当所述消息队列中待处理的任务量达到预设阈值后,根据所述集群运行状态调整集群开启数量。

进一步地,所述第二分配单元36,具体可以用于按照调整后的消息队列中任务处理顺序优先向集群分配所述未处理完成的任务。

进一步地,所述第一分配单元31包括:

确定模块311,可以用于根据消息队列中待处理的任务量确定需要开启的集群数量;

处理模块312,可以用于根据所述需要开启的集群数量以及集群运行状态开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务。

进一步地,所述更新单元32包括:

获取模块321,可以用于按照预置时间间隔获取所述消息队列中任务处理状态,所述任务处理状态包括任务正常、任务异常以及空闲;

更新模块322,可以用于在任务处理过程中当所述任务处理状态为任务异常、任务正常或者任务完成时,对应更新所述任务所在集群的集群运行状态为异常状态、正常状态或者空闲状态。

针对本发明实施例提供的另一种任务处理装置,在任务出现异常时,能够及时关闭异常任务对应的集群,并且更新集群运行状态,使得各个集群可以灵活定义自己的运行状态,避免了无效集群的资源占用,进一步将异常状态集群中未处理的任务回收到消息队列中,优先将未完成的任务分配至正常状态的集群,保证任务处理效率,通过合理的安排消息队列中的任务以及回收的未处理完成的任务,保证集群的响应速度,另外,由于处于活跃时间的集群处理任务的速度较快,集群响应速度快,通过设置集群的活跃程度,优先将消息队列中待处理的任务分配给活跃程度高的集群,提高了任务的处理效率。

所述任务处理装置包括处理器和存储器,上述第一分配单元31、更新单元32和关闭单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现集群资源的灵活配置,保证集群的响应速度。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述任务处理方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述任务处理方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

一种任务处理方法,包括:根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务,所述消息队列中标记有任务处理状态;在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态,所述集群运行状态包括异常状态、正常状态以及空闲状态;关闭所述异常状态以及所述空闲状态的集群。

进一步地,所述根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务包括:根据消息队列中待处理的任务量确定需要开启的集群数量;根据所述需要开启的集群数量以及集群运行状态开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务。

进一步地,所述在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态包括:按照预置时间间隔获取所述消息队列中任务处理状态;在任务处理过程中当所述任务处理状态为异常状态、正常状态或者空闲状态时,更新所述任务所在集群的集群运行状态为异常状态、正常状态或者空闲状态。

进一步地,在所述关闭所述异常状态以及所述空闲状态的集群之后,所述方法还包括:检测关闭后的集群中是否存在未处理完成的任务;若存在,将所述未处理完成的任务发送至所述消息队列中,并调整所述未处理完成的任务在所述消息队列中的任务处理顺序;按照调整后的消息队列中的任务处理顺序向集群分配任务。

进一步地,所述按照调整后的消息队列中的任务处理顺序向集群分配任务包括:按照调整后的消息队列中任务处理顺序优先向集群分配所述未处理完成的任务。

进一步地,在所述在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态之后,所述方法还包括:根据所述更新后的集群运行状态设置集群的活跃程度;根据所述消息队列中任务处理的先后顺序,按照集群活跃程度由高到低的顺序向集群分配任务。

进一步地,在所述关闭所述异常状态以及所述空闲状态的集群之后,所述方法还包括:当所述消息队列中待处理的任务量达到预设阈值后,根据所述集群运行状态调整集群开启数量。

本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:根据消息队列中待处理的任务量开启预设数量的集群,按照所述消息队列中任务处理顺序向开启的集群分配任务,所述消息队列中标记有任务处理状态;在任务处理过程中根据所述集群中的任务处理状态更新集群运行状态,所述集群运行状态包括异常状态、正常状态以及空闲状态;关闭所述异常状态以及所述空闲状态的集群。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1