一种基于大数据分析的任务分发系统的制作方法

文档序号:25543334发布日期:2021-06-18 20:40
一种基于大数据分析的任务分发系统的制作方法

本发明涉及信息技术领域,尤其涉及一种基于大数据分析的任务分发系统。



背景技术:

随着移动互联网技术的迅速发展和网络的不断升级,面临大数据量的任务处理时,如果采用串行任务的处理方式就会拉长任务的处理时间,所以一般会对任务采用并行处理方式,为了提高任务分发处理的效果也对并行处理能力提出了更高的要求。

如公开号为cn103186418a的发明专利便公开了一种任务分发方法及系统,其设置多个任务处理装置只有在闲置状态下才会领取任务,当任务数量大于任务处理装置个数后,每个任务处理装置都在处理任务,而没有闲置的任务处理装置,因此可以认为任务的分配满足了各个任务处理装置负载均衡的要求。该方法虽然从原理性上满足了负载均衡的要求,但其任务处理器中每次仅存一个待处理的任务,在同一个任务处理器处理任意相邻两次任务处理之间都要与消息目录发生交互,在这过程中必然会导致任务处理的中断,导致任务处理整体效率的降低。另外,现有的技术中仅考虑任务处理装置的整体性能,但本领域技术人员都知道,任务分为不同的类型,比如在智慧园区的领域中便包括了人脸识别、计费、导航、统计等等不同类型的任务,而对于不同的任务处理装置来说不同类型任务的处理能力不尽相同,因此,在分布式系统中,想要使任务分发系统的整体性能达到最优,急需一种能够考虑每个任务处理装置对不同类型的处理能力的任务分发系统。



技术实现要素:

本发明的目的在于提供一种基于大数据分析的任务分发系统,基于任务处理装置对不同类型的任务的处理能力强弱予以区分,使整体系统的性能达到最优。

为实现上述目的,本发明提供如下技术方案:

一种基于大数据分析的任务分发系统,包括

任务汇集器,汇集从各任务请求端上传的待处理任务,并根据任务请求端为所述待处理任务附上任务类型标识;

任务类型统计模块,提取待处理任务的任务类型标识,统计出各任务类型的数量和占比,并将待处理任务投递到消息队列中;

消息队列,提供临时存储待处理任务的缓冲区;

任务执行装置,数量若干,执行待处理任务;

性能测试模块,测试各个任务执行装置对不同任务类型的处理能力,并结合任务类型的优先级和统计出来的各任务类型的占比,将任务执行装置按照等比例分类为对应的装置类型;

负载均衡器,将消息队列中的待处理任务,分配至对应类型的任务执行装置中。

进一步的,所述性能测试模块中,对不同任务类别的处理能力的测试方法如下:

针对每一种任务类型,生成包含一定数量的测试任务的测试任务集,并将该测试任务集分别分发至各任务执行装置中,统计每一任务执行装置完成该测试任务集的时间,计算出每一任务执行装置在单位时间内完成该任务类型的任务量作为该任务执行装置对该任务类型的处理能力。

进一步的,所述性能测试模块中,任务执行装置的分类方法为按照任务类型的优先级从高到低的顺序依次进行如下处理:

求当前优先级的任务类型的占比与任务执行装置总数量的乘积作为对应的装置类型的数量k,取未标识装置类型的任务执行装置中对该优先级的任务类型的处理能力最强的前k个任务执行装置,附上相应的装置类型标识。

进一步的,所述性能测试模块在进行装置类型分类的时候,分配至少一个备用任务处理装置。

进一步的,所述备用任务处理装置的生成方法如下:

kx1,在求解数量k的时候进行取整;

kx2,分配完所有装置类型后,余下若干未分配的任务执行装置;

kx3,将未分配的任务执行装置与预先设定的备用任务处理装置数量进行比较;若未分配的任务执行装置大于预先设定的备用任务处理装置数量,则进入kx4;若未分配的任务执行装置小于预先设定的备用任务处理装置数量,则进入kx5;

kx4,按照任务类型的优先级从高到低的顺序,依次轮询将未分配的任务执行装置中对应任务类型的处理能力最强的附上相应的装置类型标识直至未分配的任务执行装置等于预先设定的备用任务处理装置数量;

kx5,按照任务类型的优先级从高到低的顺序,依次轮询从已标记装置类型的任务执行装置选取对应任务类型的处理能力最弱的去除其标识直至未分配的任务执行装置等于预先设定的备用任务处理装置数量;

kx6,为未分配的任务执行装置附上备用标识。

进一步的,所述负载均衡器的分配步骤如下:

fp1,针对同一装置类型,计算各任务执行装置的处理能力占该装置类型的任务执行装置的总处理能力的占比;

fp2,针对与该装置类型对应的任务类型,以待处理任务中该任务类型的数量与fp1中求得的占比的乘积作为该任务执行装置处理该批次任务的任务量上限;

fp3,负载均衡器每从消息队列提取待处理任务后,根据任务类型,将其依次轮询分配至对应装置类型并且未达到任务量上限的不同任务执行装置中,当某一任务执行装置达到任务量上限时,将其从轮询分配的队列中剔除。

进一步的,所述任务执行装置每处理完一个任务后,经负载均衡器向消息队列回发反馈,消息队列收到反馈后,删除对应的待执行任务。

进一步的,所述负载均衡器监测每一任务执行装置的完成情况,当某一任务执行装置完成所有待处理任务后,从同一装置类别的任务执行装置抓取待处理任务。

进一步的,从同一装置类别的任务执行装置抓取待处理任务的方法如下:计算同一装置类别中存在待处理任务的任务执行装置中的预计剩余完成时间,将预计剩余完成时间与设定的第一时间阈值相比较,若存在某一个或几个任务执行装置的预计剩余完成时间大于第一时间阈值,则按照预计剩余完成时间从大到小的顺序将对应的任务执行装置中的待处理任务转移至已完成所有待处理任务的任务执行装置中,直至已完成所有待处理任务的任务执行装置的预计剩余完成时间达到第一时间阈值。

与现有技术相比,本发明的有益效果是:本发明在进行任务的负载均衡的时候,充分考虑到了不同任务执行装置对于不同类型的任务的处理能力,并按照设定的任务优先级从高到低选择出最优的均衡方案,避免了任务执行装置的性能浪费,使系统的整体性能达到了进一步的提升。

附图说明

图1为本发明的系统框架图。

图2为本发明一实施例的备用任务处理装置的生成方法流程图。

图3为本发明一实施例的消息队列中的待处理任务的分配方法流程图。

图4为本发明一实施例的抓取待处理任务的方法流程图。

具体实施方式

下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明提供一种基于大数据分析的任务分发系统,包括

任务汇集器,汇集从各任务请求端上传的待处理任务,并根据任务请求端为所述待处理任务附上任务类型标识。如在应用于智慧园区时,在园区入口处设置有人脸识别、指纹识别等打卡机,车牌识别摄像头,园区出口处设置有相应的车辆停车计费系统等等,都会生成各式各样的任务,通常来说每一任务请求端生成的任务类型为同一种类,因此本发明根据任务请求端对待处理任务的类型进行了区分,并附上相应的任务类型标识。

任务类型统计模块,提取待处理任务的任务类型标识,统计出各任务类型的任务数量和占比,并将待处理任务投递到消息队列中。在一实施例中,同一批次待处理任务包括1000个{r1,r2,...rn},其中n为待处理任务总数量,本实施例中n=1000。共存在5种任务类型,任务类型标识分别为a、b、c、d、e,相应的任务数量分别为150,200,250,100,300;则其占比zbj分别为0.15,0.2,0.25,0.1,0.3;其中,j表示任务类型,j∈(a、b、c、d、e)。

消息队列,提供临时存储待处理任务{r1,r2,...rn}的缓冲区;

任务执行装置,数量若干,包括{z1,z2,...zm},其中m为任务执行装置总数量,用于执行待处理任务;

性能测试模块,测试各个任务执行装置对不同任务类型的处理能力,并结合任务类型的优先级和统计出来的各任务类型的占比,将任务执行装置按照等比例分类为对应的装置类型。

其中,对不同任务类别的处理能力的测试方法如下:

针对每一种任务类型(a、b、c、d、e),生成包含一定数量的测试任务的测试任务集,并将该测试任务集分别分发至各任务执行装置中,统计每一任务执行装置完成该测试任务集的时间tij,其中i表示任务执行装置的序号,i=[1,m],j∈(a、b、c、d、e),计算出每一任务执行装置i在单位时间内完成该任务类型j的任务量(一般情况下以任务个数作为任务量)作为该任务执行装置i对该任务类型j的处理能力,记为nlij。

任务执行装置的分类方法为按照任务类型的优先级从高到低的顺序依次进行如下处理;值得一提的是,所述任务类型的优先级为人为预先设定。

求当前优先级的任务类型j的占比zbj与任务执行装置总数量m的乘积作为对应的装置类型的数量k,基于此以任务类型的占比为基础实现了初步的均衡。不同任务之间存在优先级的差别,比如一些实时任务,如识别,计费等需要尽快进行,不然会影响到人员的进出,而一些后台任务,比如报表统计,相比较而言,对于实时性要求并不那么高,因此为了保证实时性要求更高的任务能够在第一时间内处理完成,本实施例取未标识装置类型的任务执行装置中对该优先级的任务类型的处理能力最强的前k个任务执行装置,附上相应的装置类型标识;所述装置类型标识与任务类型标识一一对应。

本领域人员都知道,数量k必须为整数,因此在实际计算数量k的时候,可采用取整或者四舍五入的方式达到这一效果。

进一步的,任务执行装置在执行任务过程中难免会发生故障宕机,剩余的任务无法进行下去。因此设置少量的备用任务处理装置显得很有必要,少量的备用任务处理装置不影响整体的进度,仅用作在其中一台或几台任务处理装置出现偶然故障的时候使用。因此本发明在所述性能测试模块在进行装置类型分类的时候,分配至少一个备用任务处理装置。请参照图2,所述备用任务处理装置的生成方法如下:

kx1,在求解数量k的时候进行取整;在实际操作过程中,至少会有一个任务执行服务器余留。

kx2,分配完所有装置类型后,余下若干未分配的任务执行装置;

kx3,将未分配的任务执行装置与预先设定的备用任务处理装置数量(根据实际情况由工作人员而定)进行比较;若未分配的任务执行装置大于预先设定的备用任务处理装置数量,则进入kx4;若未分配的任务执行装置小于预先设定的备用任务处理装置数量,则进入kx5;

kx4,这是需要将多余的未分配的任务执行装置附上装置类型,作为对应的任务处理所使用,用以进一步提高系统的整体性能。按照任务类型的优先级从高到低的顺序,依次轮询将未分配的任务执行装置中对应任务类型的处理能力最强的附上相应的装置类型标识直至未分配的任务执行装置等于预先设定的备用任务处理装置数量。将对应到其任务类型的处理能力最强的附上装置类型,相应的,将性能较弱的作为备用,整体处理性能得到提高。

kx5,按照任务类型的优先级从高到低的顺序,依次轮询从已标记装置类型的任务执行装置选取对应任务类型的处理能力最弱的去除其标识直至未分配的任务执行装置等于预先设定的备用任务处理装置数量,与kx4相反,当要从已标记装置类型的任务执行装置中剔除一部分作为备用时,优选选择其处理能力较弱的,起到保障整体处理性能的效果。

kx6,为未分配的任务执行装置附上备用标识。当出现某一台或几台任务处理装置长时间没有处理完成任务的时候,认为其出现了宕机故障,随即将其进行中的待处理任务转至备用任务执行装置中,保证任务能够正常进行下去。

负载均衡器,将消息队列中的待处理任务,分配至对应类型的任务执行装置中。请参照图3,具体分配步骤如下:

fp1,针对同一装置类型,计算各任务执行装置的处理能力占该装置类型的任务执行装置的总处理能力的占比;

fp2,针对与该装置类型对应的任务类型,以待处理任务中该任务类型的数量与fp1中求得的占比的乘积作为该任务执行装置处理该批次任务的任务量上限;

fp3,负载均衡器每从消息队列提取待处理任务后,根据任务类型,将其依次轮询分配至对应装置类型并且未达到任务量上限的不同任务执行装置中,当某一任务执行装置达到任务量上限时,将其从轮询分配的队列中剔除。

该分配方法能够使得初步分配后,可以保证各任务执行装置对所分配的待处理任务的完成时间大致相等。

值得一提的是,所述任务执行装置每处理完一个任务后,经负载均衡器向消息队列回发反馈,消息队列收到反馈后,删除对应的待执行任务。

本领域人员都知道,在任务处理装置执行任务的过程中,其执行环境会发生变化,如温度、湿度、电压等等,因此初步分配之后,任务执行装置实际完成任务的时间并非与我们所预期其完成时间完全一致,有可能导致某一个或几个任务执行装置比较快,而另外几个任务执行装置比较慢的情况。

基于上述请款,本申请提出一种新的抓取机制:所述负载均衡器监测每一任务执行装置的完成情况,当某一任务执行装置完成所有待处理任务后,从同一装置类别的任务执行装置抓取待处理任务。抓取待处理任务的方法如下:计算同一装置类别中存在待处理任务的任务执行装置中的预计剩余完成时间,将预计剩余完成时间与设定的第一时间阈值相比较,所述第一时间阈值为工作人员所允许的时间,在第一时间阈值内,不影响整体的任务处理进度。若存在某一个或几个任务执行装置的预计剩余完成时间大于第一时间阈值,则按照预计剩余完成时间从大到小的顺序将对应的任务执行装置中的待处理任务转移至已完成所有待处理任务的任务执行装置中,直至已完成所有待处理任务的任务执行装置的预计剩余完成时间达到第一时间阈值。

如:设定第一时间阈值为10s,

当同一装置类别的任务执行装置中,其中1台首先完成所有待处理任务;

则计算同一装置类别的其他任务执行装置的预计剩余完成时间;所述预计剩余完成时间的计算为:剩余待处理任务除以其对应任务类型的处理能力;

从预计剩余完成时间最大的任务执行装置中抓取一定量的待处理任务,转移至已完成所有待处理任务的任务执行装置中;请参照图4,抓取的量由以下方法计算:

zq1,计算每一台任务执行装置在接下去第一时间阈值的时间段内预计可完成的任务量pi;将实际未完成的待处理任务量qi与任务量pi做差作为该任务执行装置的溢出值si,其中i为任务执行装置的序号;

zq2,将各任务执行装置的溢出值si排序;

zq3,计算已完成所有待处理任务的任务执行装置在接下去第一时间阈值的时间段预计可完成的任务量p0;将任务量p0与溢出值si的最大值smax作比较,若任务量p0小于smax,则仅抓取溢出值si最大值smax对应任务执行装置中的待处理任务至已完成所有待处理任务的任务执行装置中,抓取的量为p0;

zq4,若任务量p0大于smax,则抓取溢出值si最大值smax对应任务执行装置中的溢出的待处理任务至已完成所有待处理任务的任务执行装置中,

zq5,重复zq2至zq3的步骤直至抓取的任务总量达到已完成所有待处理任务的任务执行装置在接下去第一时间阈值的时间段预计可完成的任务量p0。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

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