任务处理装置、方法、终端设备和可读存储介质与流程

文档序号:22626738发布日期:2020-10-23 19:35阅读:152来源:国知局
任务处理装置、方法、终端设备和可读存储介质与流程

本发明涉及数据处理领域,尤其涉及一种任务处理装置、方法、终端设备和可读存储介质。



背景技术:

当前大多数智能硬件中部署的程序,都是根据该产品设计对应的任务,编写成完整的处理流程,最终持续长期运行。处理流程中的各个环节,如控制摄像头,图片下载,图片分析,结果上传等,编写成各个处理模块并提供调用接口被主程序调用。这样的方案,无法动态地适应变化的任务场景,在任务并发量大时无法及时响应,也无法根据各个处理模块执行任务的时间变化动态调整。



技术实现要素:

鉴于上述问题,本发明提出一种任务处理装置、方法、终端设备和可读存储介质。

本发明的一个实施例提出一种任务处理装置,该装置包括主控模块和多类任务处理模块,上游任务处理模块与下游处理模块之间以消息传递的方式进行通信;

所述主控模块用于:

监测各类任务处理模块的对应的任务消息是否存在堆积;

若存在堆积,则根据所述各类任务处理模块对应的堆积的任务消息的数量调整对应类别的任务处理模块的数量。

所述主控模块还用于:

监测所述各类任务处理模块处理对应任务消息的处理时间;

根据各个处理时间调整所述各类任务处理模块的数量。

所述主控模块还用于:

监测所述各类任务处理模块所处工作环境的网速;

根据所述网速调整利用网络执行任务消息的任务处理模块的数量。

所述主控模块还用于:

监测所述各类任务处理模块运行时所占用的总运行内存;

根据所述总运行内存调整所述各类任务处理模块的数量。

所述主控模块还用于:

监测所述各类任务处理模块所处工作环境的环境温度;

根据所述环境温度调整所述各类任务处理模块的数量。

本发明的另一个实施例提出一种任务处理方法,该方法包括:

监测各类任务进程的对应的任务消息是否存在堆积,中上游任务进程与下游任务进程之间以消息传递的方式进行通信;

若存在堆积,则根据所述各类任务进程对应的堆积的任务消息的数量调整对应类别的任务进程的数量。

上述的任务处理方法,还包括:

监测所述各类任务进程处理对应任务消息的处理时间;

根据各个处理时间调整所述各类任务进程的数量。

上述的任务处理方法,还包括:

监测所述各类任务进程所处工作环境的网速;

根据所述网速调整利用网络执行任务消息的任务进程的数量。

上述实施例涉及一种终端设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备能执行上述的任务处理方法。

上述实施例涉及一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行上述的任务处理方法。

本发明提出一种包括主控模块和多类任务处理模块的任务处理装置,上游任务处理模块与下游处理模块之间以消息传递的方式进行通信;主控模块用于:监测各类任务处理模块的对应的任务消息是否存在堆积;若存在堆积,则根据所述各类任务处理模块对应的堆积的任务消息的数量调整对应类别的任务处理模块的数量。本发明的技术方案根据对应任务消息堆积的情况动态调整对应类别的任务处理模块的数量,有效避免因某一类任务消息堆积延长整个流程性任务的处理时间。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。

图1示出了本发明实施例提供的一种任务处理装置的结构示意图;

图2示出了本发明实施例提供的一种图像任务处理装置的结构示意图;

图3示出了本发明实施例提供的一种图像任务处理装置增加各类任务处理模块后的结构示意图;

图4示出了本发明实施例提供的一种任务处理方法的流程示意图。

主要元件符号说明:

10-主控模块;11-第一类任务处理模块;12-第二类任务处理模块;13-第三类任务处理模块;14-第n类任务处理模块;21-图像下载模块;22-图像处理模块;23-图像上传模块;1-一种任务处理装置;2-一种图像任务处理装置;3-改进图像任务处理装置。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。

本发明公开的技术方案将一项流程性任务拆分为多个子任务,将处理一项流程性任务的程序拆分为多个子程序。将用于处理每一类子任务的子程序封装为一个任务处理模块,在处理某一类子任务时,通过主控模块10直接调用对应类别的任务处理模块,实现对该类子任务的处理,并将处理结果以消息传递的方式传递给另一类任务处理模块。各类任务处理模块之间以消息传递的方式进行通信,完成一项流程性任务。

实施例1

本实施例,参见图1,一种任务处理装置1包括主控模块10和多类任务处理模块,各类任务处理模块之间以消息传递的方式进行通信,即上游任务处理模块与下游处理模块之间以消息传递的方式进行通信。

示范性的,第一类任务处理模块11从第一类任务的消息队列中获取任务消息,并对获取的任务消息进行处理,然后将处理结果发送至第二类任务的消息队列中;第二类任务处理模块12从第二类任务的消息队列中获取任务消息,并对获取的任务消息进行处理,然后将处理结果发送至第三类任务的消息队列中;第三类任务处理模块13从第三类任务的消息队列中获取任务消息,……,相应的,第n类任务处理模块14从第n类任务的消息队列中获取任务消息,并对获取的任务消息进行处理,直至整个流程性任务处理完成为止。

上述主控模块10可以用于监测各类任务处理模块的对应的任务消息是否存在堆积;若存在堆积,则根据所述各类任务处理模块对应的堆积的任务消息的数量调整对应类别的任务处理模块的数量。

示范性的,当主控模块10监测到第一类任务的消息队列中存在堆积的任务消息时,可以增加第一类任务处理模块11的数量,可以将第一类任务处理模块11的数量增加至2个、3个、4个或更多。应当理解,第一类任务的消息队列中存在堆积的任务消息越多,则需要增加更多的第一类任务处理模块11,以加快对第一类任务消息的处理速度,避免第一类任务消息堆积过多,延长整个流程性任务的处理时间。应当理解,监测到第i类任务的消息队列中存在堆积的任务消息时,可以增加对应的第i类任务处理模块的数量,i小于等于n,n为任务处理模块的总类数。

进一步的,应当理解,在增加某一类任务处理模块的数量时,应该考虑各类任务处理模块对系统资源的占用情况,应保证当前所有的任务处理模块所占用的系统资源不能超出系统资源总资源。示范性的,系统资源包括系统的运行内存,在整个流程性任务包括3类任务处理模块时,若各类任务处理模块的数量分别为2、1、1,各类任务处理模块运行时所占用的运行内存分别为10%、15%、20%,则所有的任务处理模块所占用的运行内存为10%*2+15%*1+20%*1=55%,应当理解,所有的任务处理模块所占用的运行内存不能超过100%,以确保各个任务处理模块可以正常运行。另外,应当理解,在系统的中有其他模块运行时,可以设置所有的任务处理模块所占用的总运行内存不超过预设的内存阈值,预设的内存阈值可以为60%~80%之间,以确保系统的中的其他模块可以正常运行,保证整个系统工作的稳定性。

进一步的,若不存在堆积的任务消息,则可以将每一类任务处理模块的数量调整为1个。一方面,保证整个流程性任务的各个子任务可以及时被处理,保证整个流程性任务的及时完成;另一方面,在不存在堆积的任务消息时,将每一类任务处理模块的数量调整为1个,可以保证系统的资源被有效利用,避免过多的无用的任务处理模块占用系统资源。

本实施例提出一种包括主控模块和多类任务处理模块的任务处理装置,各类任务处理模块之间以消息传递的方式进行通信;主控模块用于:监测各类任务处理模块的对应的任务消息是否存在堆积;若存在堆积,则根据所述各类任务处理模块对应的堆积的任务消息的数量调整对应类别的任务处理模块的数量。本实施例的技术方案根据对应任务消息堆积的情况动态调整对应类别的任务处理模块的数量,有效避免因某一类任务消息堆积延长整个流程性任务的处理时间;并且,在不存在堆积的任务消息时,可以将每一类任务处理模块的数量调整为1个。一方面,保证整个流程性任务的各个子任务可以及时被处理,保证整个流程性任务的及时完成;另一方面,在不存在堆积的任务消息时,将每一类任务处理模块的数量调整为1个,可以保证系统的资源被有效利用,避免过多的无用的任务处理模块占用系统资源。

实施例2

进一步的,主控模块10还可以用于:监测所述各类任务处理模块处理对应任务消息的处理时间;根据各个处理时间调整所述各类任务处理模块的数量。

示范性的,在整个流程性任务包括3类任务处理模块时,若第一类任务处理模块11处理对应的消息队列中任务消息的处理时间的为10s,第二类任务处理模块12处理对应的消息队列中任务消息的处理时间的为5s,第三类任务处理模块13处理对应的消息队列中任务消息的处理时间的为5s,由于第一类任务处理模块11处理对应任务消息的处理时间较长,为了加快整个流程性任务的处理时间,避免第一类任务的消息队列中任务消息堆积,则可以将第一类任务处理模块11的数量设置为2个,第二类任务处理模块12的数量设置为1个,第三类任务处理模块13的数量设置为1个。

进一步的,主控模块10还可以用于:

监测所述各类任务处理模块所处工作环境的网速;根据所述网速调整利用网络执行任务消息的任务处理模块的数量。

示范性的,在整个流程性任务包括3类任务处理模块时,若第一类任务处理模块11处理对应的任务消息需要利用网络,受网速的影响,在网速较快时,第一类任务处理模块11处理处理对应的任务消息较快,在网速较慢时,第一类任务处理模块11处理处理对应的任务消息较慢,则可以监测当前工作环境的网速,根据网速调整第一类任务处理模块11的数量。例如,可以在网速小于等于预设的网速阈值时,适当增加第一类任务处理模块11的数量,以加快对第一类任务的消息队列中的任务消息的处理速度;在网速大于预设的网速阈值时,可以将第一类任务处理模块11的数量设置为1个。预设的网速阈值可以根据第一类任务处理模块11的处理速度受网速影响程度进行灵活设置,受网速影响程度越大,网速阈值应越大。

进一步的,在上述调整各类任务处理模块的数量时,主控模块10还用于:

监测所述各类任务处理模块运行时所占用的总运行内存;根据所述总运行内存调整所述各类任务处理模块的数量。

应当理解,在系统的中有其他模块运行时,可以设置所有的任务处理模块所占用的总运行内存不超过预设的内存阈值,预设的内存阈值可以为60%~80%之间,以确保系统的中的其他模块可以正常运行,保证整个系统工作的稳定性。

示范性的,若内存阈值预设为80%,在整个流程性任务包括3类任务处理模块时,若第一类任务处理模块11处理对应的消息队列中任务消息需要占用的运行内存为10%,第一类任务处理模块11的数量为3个,第二类任务处理模块12处理对应的消息队列中任务消息需要占用的运行内存为15%,第二类任务处理模块12的数量为2个,第三类任务处理模块13处理对应的消息队列中任务消息需要占用的运行内存为10%,第一类任务处理模块11的数量为3个,则所有的任务处理模块所占用的总运行内存为10%*3+15%*2+11%*3=93%,此时,所有的任务处理模块所占用的总运行内存93%已经超过内存阈值80%,为了确保系统的中的其他模块可以正常运行,保证整个系统工作的稳定性,可以减少某一类或某几类任务处理模块的数量,以使所有的任务处理模块所占用的总运行内存小于内存阈值80%。例如,可以减少第三类任务处理模块13的数量至2个,以降低所有的任务处理模块所占用的总运行内存。应当理解,在减少各类任务处理模块时,应当保证,每一类任务处理模块的数量至少为1个,保证整个流程性任务的可以顺利完成。

进一步的,在上述调整各类任务处理模块的数量时,主控模块10还用于:

监测所述各类任务处理模块所处工作环境的环境温度;根据所述环境温度调整所述各类任务处理模块的数量。

应当理解,工作环境的环境温度过高将影响系统的正常运行,可以通过减少各类任务处理模块的数量,降低系统的功耗,以实现降温的目的。应当理解,在减少各类任务处理模块时,应当保证,每一类任务处理模块的数量至少为1个,保证整个流程性任务的可以顺利完成。

示范性的,可以预先设置环境温度阈值,在监测到的环境温度大于预设的环境温度阈值时,适当减少各类任务处理模块的数量;在监测到的环境温度小于等于预设的环境温度阈值时,可以根据需要灵活调整各类任务处理模块的数量。

实施例3

示范性的,本实施例,参见图2,示出了一种图像任务处理装置2包括:图像下载模块21、图像处理模块22、图像上传模块23和主控模块10。

图像下载模块21从对应的第一消息队列中获取第一任务消息,下载图片到本地。下载完成后发送第二任务消息(包括任务id,图像本地地址,需要进行的操作等信息)到第二消息队列;图像处理模块22从第二消息队列中获取第二任务消息,对图像进行预处理、ai检测分析、裁切、本地保存等操作,处理完成后,发送第三任务消息(包括任务id,处理后图像的本地地址,ai检测分析结果等信息)到第三消息队列;图像上传模块23从第三消息队列中获取第三任务信息,将本地图片上传至网络存储空间中,同时将第四任务消息(包括任务id,处理后图像的url,ai检测分析结果)发送到第四消息队列,云端可以从第四消息队列获取经过处理的图像。上述第一消息队列中获取第一任务消息可以从云端获取。

应当理解,将整个图像处理任务分为图像下载、图像处理和图像上传多个子任务,有效地将功能相对独立的各个环节进行拆分,每一环节设置对应的任务处理模块,可以根据各类任务处理模块各自的资源开销,运算耗时等因素,调整各类任务处理模块的数量,加快整个图像处理任务的处理速度。

在上述图像处理过程中,图像下载模块21负责的图像下载任务涉及到资源服务器响应、网络延迟、网络带宽和图像大小等因素,耗时较长,且进程资源占用少,主控模块10可以适当增加图像下载模块21的数量;图像上传模块23负责本地图像上传,图像下载模块21负责的图像上传任务涉及到资源服务器响应、网络延迟、网络带宽和图像大小等因素,耗时较长,且进程资源占用少,主控模块10可以适当增加图像上传模块23的数量;而图像处理模块22主要负责ai模型分析,在批量分析图像时耗时较少,且ai模型占用内存很大,边缘端硬件往往没有足够的资源同时加载多个图像处理模块22,因此,主控模块10不应增加过多的图像处理模块22。但是,当硬件条件足够时,主控模块10同样可以适当增加图像处理模块22的数量。示范性的,适当增加图像下载模块21、图像处理模块22和图像上传模块23后的改进图像任务处理装置3结构示意图如图3所示。

进一步的,当设备所处环境温度较高,且任务消息堆积较少或无任务堆积时,可以适当减少各类任务处理模块的数量,减小系统负载,降低硬件温度以延长使用寿命。图像下载模块21、图像处理模块22和图像上传模块23都可以删减,但是,应当保证至少有一个图像下载模块21、一个图像处理模块22和一个图像上传模块23,以支持系统完成既定任务。

实施例4

本实施例,参见图4,示出了一种任务处理方法包括以下步骤:

步骤s100:监测各类任务进程的对应的任务消息是否存在堆积,其中上游任务进程与下游任务进程之间以消息传递的方式进行通信;

步骤s200:若存在堆积,则根据所述各类任务进程对应的堆积的任务消息的数量调整对应类别的任务进程的数量。

进一步的,一种任务处理方法还可以包括以下步骤:

步骤s300:若不存在堆积的任务消息,则将每一类任务进程的数量调整为1个。

进一步的,一种任务处理方法还包括以下步骤:

步骤s400:监测所述各类任务进程处理对应任务消息的处理时间;

步骤s410:根据各个处理时间调整所述各类任务进程的数量。

进一步的,一种任务处理方法还包括以下步骤:

步骤s500:监测所述各类任务进程所处工作环境的网速;

步骤s510:根据所述网速调整利用网络执行任务消息的任务进程的数量。

进一步的,一种任务处理方法还包括以下步骤:

步骤s600:监测所述各类任务进程运行时所占用的总运行内存;

步骤s610:根据所述总运行内存调整所述各类任务进程的数量。

进一步的,一种任务处理方法还包括以下步骤:

步骤s700:监测所述各类任务进程所处工作环境的环境温度;

步骤s710:根据所述环境温度调整所述各类任务进程的数量。

本实施例公开的任务处理方法对应上述实施例所述的任务处理装置,上述实施例所涉及的实施方案以及有益效果在本实施例中同样适用,在此不再赘述。

应当理解,上述实施例涉及一种终端设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备能执行上述的任务处理方法。

应当理解,上述实施例涉及一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行上述的任务处理方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

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