基于Redis的任务分配方法、装置、计算机设备及存储介质与流程

专利2022-06-29  62


本发明涉及任务调度技术领域,尤其涉及一种基于redis的任务分配方法、装置、计算机设备及存储介质。



背景技术:

在现有的任务调度系统中,一般情况下是由调度器来完成任务的调度,调度的规则是根据执行器的计算资源和运行资源来综合考虑进行任务的分配。这样的任务分配方式十分依赖于执行器定时向调度器汇报的资源使用情况和任务执行情况,当有新的任务请求时,而执行器又尚未向调度器汇报目前的资源使用情况和任务执行情况时,调度器只能根据执行器的上一次汇报的资源使用情况和任务执行情况进行任务的分配,此时则会导致执行器之间的任务分配不均匀,即会使得有些执行器执行的任务过于繁重,而有些执行器则处于空间状态,没有任务可以执行,影响整个调度的性能和效率。



技术实现要素:

本发明实施例提供了一种基于redis的任务分配方法、装置、计算机设备及存储介质,能够在redis中根据执行器的相关性能参数进行排序,从而使得调度器可以及时合理地进行任务调度分配,提高了整体的工作效率以及用户的使用体验度。

第一方面,本发明实施例提供了一种基于redis的任务分配方法,其应用于调度器,该方法具体包括:若接收到任务分配请求,根据所述任务分配请求发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务;将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列;根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;调用所述目标执行器以使目标执行器执行所述待处理任务。

第二方面,本发明实施例还提供了一种基于redis的任务分配装置,应用于调度器,该装置具体包括:处理单元,用于若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务;第一获取单元,用于将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列;第一确定单元,用于根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;调用单元,用于调用所述目标执行器以执行所述待处理任务。

第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现上述方法。

本发明实施例提供了一种基于redis的任务分配方法、装置、计算机设备及存储介质。其中,所述方法包括:若接收到任务分配请求,根据所述任务分配请求发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务;获取所有的标准值,并将所有的标准值按照数值大小进行排序以得到一标准值序列;根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;调用所述目标执行器以使目标执行器执行所述待处理任务。本发明实施例可以在调度器收到任务分配请求时,发送性能计算请求至所有的执行器以使所有的执行器将各自的性能参数转换成标准值,再将标准值发送至redis节点中,从而使得调度器能够通过redis节点了解各个执行器的相关性能参数以便及时合理地进行任务调度分配,避免了执行器的不合理使用,提高了整体的工作效率以及用户的使用体验度。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于redis的任务分配方法的应用场景示意图;

图2是本发明实施例提供的基于redis的任务分配方法的流程示意图;

图3是本发明实施例提供的基于redis的任务分配方法的子流程示意图;

图4是本发明实施例提供的基于redis的任务分配方法的子流程示意图;

图5是本发明实施例提供的基于redis的任务分配方法的子流程示意图

图6是本发明实施例提供的基于redis的任务分配装置的示意性框图;

图7是本发明实施例提供的基于redis的任务分配装置的处理单元的示意性框图;

图8是本发明实施例提供的基于redis的任务分配装置的第一获取单元的示意性框图;

图9是本发明实施例提供的基于redis的任务分配装置的第一确定单元的示意性框图;

图10是本发明实施例提供的计算机设备的示意性框图。

具体实施方式

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

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

图1为本发明实施例提供的基于redis的任务分配的方法的应用场景示意图。调度器20在收到任务分配请求后,能够通过向执行器10发送性能计算请求以使执行器10将相关性能参数发送至redis节点,然后调度器20可以通过redis节点了解执行器的性能参数从而合理地分配任务,其中,在redis节点中,redis节点可以根据执行器的性能参数情况,对执行器进行排序,从而使得调度器能够直接通过redis节点安排调度器执行任务。图2是本发明实施例提供的基于redis的任务分配的方法的流程示意图,其中,该方法应用于调度器,调度器可以安装在终端中,终端可以是笔记本、台式电脑以及平板电脑等设备。

步骤s110,若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务。

在本实施例中,当调度器接收到新的任务分配请求时,解析该任务分配请求以获得若干个待处理任务。为了便于合理快速地进行任务分配,需要了解各个执行器的计算资源、运行资源以及执行任务的情况,故调度器会将性能计算请求发送至所有的执行器里,当执行器接收到调度器发送的计算请求时,会根据各自的性能参数以及预设规则计算标准值,并在计算完成后将标准值反馈至redis节点。其中,执行器的数量可以为多个,为了确定更为合适的能够进行快速地任务处理的执行器去执行待处理任务,通常需要对各个执行器的性能参数进行统计分析。

在一实施例中,所述性能参数包括cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间。

具体的,执行器执行任务时需要占用cpu、内存以及磁盘,因此在计算标准值时,将cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间作为性能参数能够更充分全面地了解执行器最新的性能情况,综合上述所有参数所计算出来的标准值才能更精准的反馈执行器的最新的性能情况。

在一实施例中,如图3所述,所述步骤s110可以包括步骤s111-s112。

步骤s111,若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有执行器以使所有执行器确定其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间。

其中,在调度器收到任务分配请求后,解析该请求,然后发送性能计算请求至执行器,在执行器收到性能计算请求后,需要先确定自身cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间等参数的具体数值,在计算标准值时的时候才能确定标准值的准确性。

步骤s112,控制每个执行器将其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间按照预设的权重比相加求和以得到相应的标准值。

其中,当执行器确认完自身的性能参数的具体情况后,调度器控制执行器根据cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间等参数的具体数值按照预设的权重比对各个参数的性能参数的数值相加求和得到标准值。预设的权重比是根据用户的需求预先设置的比值,例如,该预设的权重比可以为cpu使用率占30%,内存使用率占20%,执行成功的任务数量占20%,磁盘使用率、已执行的任务数量以及执行任务所耗费的时间各占10%,当然,具体的预设的权重比在这里不做限定。根据预设的权重比所计算出来的标准值,标准值的数值越大则说明执行器已经占用的性能资源越多,不适合优先被分配执行任务。

步骤s120,将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列。

在本实施例中,当所有的执行器计算完成各自的标准值后,将标准值发送至redis节点中,redis节点将所接收到的标准值按照数值大小进行排序从而生成一个标准值序列,所述排序方式可以是从小到大排序,也可以是从大到下排序,具体排序方法在这里不做限定。例如,以根据标准值的数值大小进行从小到大的排序为例,当所有的标准值按照数值大小进行从小到大的顺序排列后,所生成的标准值序列中的各个执行器则也相应地可以按照从小到大依次排列,redis节点就可以根据标准值序列充分掌握各个执行器最新的状况,以便于调度器直接从redis节点调用与标准值相匹配的执行器进行任务分配。

在一实施例中,如图4所述,所述步骤s120可以包括步骤s121-s125。

步骤s121,将所有的标准值发送至redis节点。

其中,执行器将各自的标准值发送至redis节点中以便后续的计算。

步骤s122,将所有的标准值在redis节点中按照数值大小进行排序以得到一中间序列。

其中,在redis节点中,将获取到的标准值按照标准值的数值大小进行排序从而得到一个中间序列,为之后的再次排序做准备。排序顺序可以为从大到小,也可以是从小到大,具体方式在这里不做限定。

步骤s123,若所述中间序列存在数值相同的标准值,确定数值相同的每个标准值所对应的执行器。

其中,在一些情况下,会存在多个数值相同的标准值,当存在多个数值相同的标准值时,首先确定数值相同的标准值所对应的执行器,以便之后再次排序做准备。

步骤s124,获取每个所确定的执行器已执行成功的任务数量。

其中,在标准值相同的执行器中确定其已执行成功的任务数量。已执行成功的任务数量是衡量执行器性能的一个重要参数,因此优先选择该参数作为再次排序的依据。在其它的情况下,还可以选择cpu使用率以及已执行任务的数量等参数来作为再次排序的依据,在这里不做限定。

步骤s125,根据所获取的任务数量的大小将中间序列中的所确定的执行器对应的标准值进行再次排序,以得到标准值序列。

其中,再确定已执行成功的任务数量之后,在中间序列里,对数值相同的标准值进行再次排序,再次排序之后就可以得到标准值序列。

步骤s130,根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器。

在本实施例中,根据预设规则和性能参数所计算出来的标准值是数值越小代表所对应的执行器执行任务的效率越高,因此,当得到标准值序列之后,调度器就可以根据标准值序列了解各个执行器的最新的标准值的具体数值情况时,便可以通过redis节点将标准值序列中数值最小的标准值所对应的执行器设为目标执行器以便于后续分配任务。

步骤s140,调用所述目标执行器以执行所述待处理任务。

在本实施例中,由于在前一步骤中确定了目标执行器为执行任务的最优执行器,之后只需将待处理的任务分配给目标执行器以便于目标执行器执行待处理任务即可。

在一实施例中,如图5所述,所述步骤s140之后,还可以包括步骤s131和s132:

所述步骤s131,若所述目标执行器执行完成所述待处理任务,重新计算所述目标执行器的标准值。

其中,当目标执行器执行完成待处理任务时,重新计算该目标执行器的标准值,以为后续步骤做准备。

所述步骤s132,若所述目标执行器的标准值低于预设值,则将所述目标执行器设为优先目标执行器以在接收到新的任务分配请求时,直接作为目标执行器执行新的待处理任务。

其中,当目标执行器新的标准值计算完毕时,若该标准值低于预设值,则将该目标执行器设为优先目标执行器,使得在接到新的任务分配请求时,不需要重新发送性能获取请求至所有的执行器,而是直接安排该优先目标执行器执行待处理任务。预设值可以是40、50或者60,具体数值在这里不做限定。例如,以60为例,若目标执行器在执行完成任务后,新的标准值为50,低于预设值,则将该目标执行器设为优先目标执行器,从而在接到新的任务分配请求时,直接安排该优先目标执行器执行任务,提升处理任务的效率。

具体的,例如当调度器接收到某一个任务分配请求,调度器对该任务分配请求进行解析以获得某一个待处理任务,之后调度器需要了解各个执行器最新的情况,所以会发送计算请求给所有的执行器,当执行器收到计算请求后,会根据自身的性能参数和预设规则计算标准值,并将标准值反馈至redis节点。当redis节点收到所有的标准值后,对所有的标准值按照数值大小从小到大进行排序以生成标准值序列。在一些情况下,存在若干标准值相等的执行器,此时可以将执行成功的任务数量作为标准按照数值大小从小到大进行再次排序。

例如,当存在一个第一执行器的标准值为40,执行成功的任务数量为20,同时存在另外一个第二执行器的标准值为40,执行成功的任务数量为15,在以标准值的数值大小进行排序时,第一执行器与第二执行器的大小相等,无法准确判断哪个执行器为优先执行任务的执行器,但是第一执行器的执行成功的任务数量比第二执行器的执行成功的任务数量多,因此就可以用把第一执行器的排名放在第二执行器前面。当标准值序列确定后,从标准值序列中找到排名最高前的标准值所有对应的执行器,即标准值最小的执行器,调用该执行器执行任务。当第一执行器执行完成任务后,重新计算该执行器的标准值,若标准值为50,低于预设值60,则将该第一执行器设为优先目标执行器,在接到新的任务分配请求时,直接将该执行器分配去执行新的待处理任务。。

图6是本发明实施例提供的一种基于redis的任务分配装置的示意性框图。如图6所示,对应于以上一种基于redis的任务分配的方法,本发明还提供一种基于redis的任务分配装置。该基于redis的任务分配装置包括用于执行上述数据获取方法的单元,该装置可以被配置于台式电脑、平板电脑、手提电脑、等终端中,请参阅图6,该数据获取装置包括处理单元110、第一获取单元120、第一确定单元130以及调用单元140。

所述处理单元110,用于若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务。

在本实施例中,当调度器接收到新的任务分配请求时,解析该任务分配请求以获得若干个待处理任务。为了便于合理快速地进行任务分配,需要了解各个执行器的计算资源、运行资源以及执行任务的情况,故调度器会将性能计算请求发送至所有的执行器里,当执行器接收到调度器发送的计算请求时,会根据各自的性能参数以及预设规则计算标准值,并在计算完成后将标准值反馈给调度器。其中,执行器的数量可以为多个,为了确定更为合适的能够进行快速地任务处理的执行器去执行待处理任务,通常需要对各个执行器的性能参数进行统计分析。

在一实施例中,如图7所述,所述处理单元110可以包括发送单元111和控制单元112。

所述发送单元111,用于若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有执行器以使所有执行器确定其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间。

其中,在执行器收到性能计算请求后,需要先确定自身cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间等参数的具体数值,在计算标准值时的时候才能确定标准值的准确性。

所述控制单元112,用于每个控制执行器将其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间按照预设的权重比相加求和以得到标准值。

其中,当执行器确认完自身的性能参数的具体情况后,调度器控制执行器根据cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间等参数的具体数值按照预设的权重比对各个参数的性能参数的数值相加求和得到标准值。预设的权重比是根据用户的需求预先设置的比值,例如,该预设的权重比可以为cpu使用率占30%,内存使用率占20%,执行成功的任务数量占20%,磁盘使用率、已执行的任务数量以及执行任务所耗费的时间各占10%,当然,具体的预设的权重比在这里不做限定。根据预设的权重比所计算出来的标准值,标准值的数值越大则说明执行器已经占用的性能资源越多,不适合优先被分配执行任务。

所述第一获取单元120,用于将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列。

在本实施例中,当所有的执行器计算完成各自的标准值后,将标准值发送至redis节点中,redis节点将所接收到的标准值按照数值大小进行排序从而生成一个标准值序列,所述排序方式可以是从小到大排序,也可以是从大到下排序,具体排序方法在这里不做限定。例如,以根据标准值的数值大小进行从小到大的排序为例,当所有的标准值按照数值大小进行从小到大的顺序排列后,所生成的标准值序列中的各个执行器则也相应地可以按照从小到大依次排列,redis节点就可以根据标准值序列充分掌握各个执行器最新的状况,以便于调度器直接从redis节点调用与标准值相匹配的执行器进行任务分配。

在一实施例中,如图8所述,所述第一获取单元120可以包括:第二获取单元121、第一排序单元122、第二确定单元123、第三获取单元124和第二排序单元125。

所述第二获取单元121,用于将所有的标准值发送至redis节点。

其中,执行器将各自的标准值发送至redis节点中以便后续的计算。

所述第一排序单元122,用于将所有的标准值在redis节点中按照数值大小进行排序以得到一中间序列。

其中,在redis节点中,将获取到的标准值按照标准值的数值大小进行排序从而得到一个中间序列,为之后的再次排序做准备。排序顺序可以为从大到小,也可以是从小到大,具体方式在这里不做限定。

所述第二确定单元123,用于若所述中间序列存在数值相同的标准值,确定数值相同的每个标准值所对应的执行器。

其中,在一些情况下,会存在多个数值相同的标准值,当存在多个数值相同的标准值时,首先确定数值相同的标准值所对应的执行器,以便之后再次排序做准备。

所述第三获取单元124,用于获取每个所确定的执行器已执行成功的任务数量。

其中,在标准值相同的执行器中确定其已执行成功的任务数量。已执行成功的任务数量是衡量执行器性能的一个重要参数,因此优先选择该参数作为再次排序的依据。在其它的情况下,还可以选择cpu使用率以及已执行任务的数量等参数来作为再次排序的依据,在这里不做限定。

所述第二排序单元125,用于根据所获取的任务数量的大小将中间序列中的所确定的执行器对应的标准值进行再次排序,以得到标准值序列。

其中,再确定已执行成功的任务数量之后,在中间序列里,对数值相同的标准值进行再次排序,再次排序之后就可以得到标准值序列。

所述第一确定单元130,用于根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器。

在本实施例中,根据预设规则和性能参数所计算出来的标准值是数值越小代表所对应的执行器执行任务的效率越高,因此,当得到标准值序列之后,调度器就可以根据标准值序列了解各个执行器的最新的标准值的具体数值情况时,便可以通过redis节点将标准值序列中数值最小的标准值所对应的执行器设为目标执行器以便于后续分配任务。

所述调用单元140,用于调用所述目标执行器以执行所述待处理任务。

在本实施例中,由于在前一步骤中确定了目标执行器为执行任务的最优执行器,之后只需将待处理的任务分配给目标执行器以便于目标执行器执行待处理任务即可。

在一实施例中,如图9所述,所述调用单元140,可以包括第一计算单元141和判断单元142。

所述第一计算单元141,用于若所述目标执行器执行完成所述待处理任务,重新计算所述目标执行器的标准值。

其中,当目标执行器执行完成待处理任务时,重新计算该目标执行器的标准值,以为后续步骤做准备

所述判断单元142,用于若所述目标执行器的标准值低于预设值,则将所述目标执行器设为优先目标执行器以在接收到新的任务分配请求时,直接作为目标执行器执行新的待处理任务。

其中,当目标执行器新的标准值计算完毕时,若该标准值低于预设值,则将该目标执行器设为优先目标执行器,使得在接到新的任务分配请求时,不需要重新发送性能获取请求至所有的执行器,而是直接安排该优先目标执行器执行待处理任务。预设值可以是40、50或者60,具体数值在这里不做限定。例如,以60为例,若目标执行器在执行完成任务后,新的标准值为50,低于预设值,则将该目标执行器设为优先目标执行器,从而在接到新的任务分配请求时,直接安排该优先目标执行器执行任务,提升处理任务的效率。上述统计变量命名装置可以实现为一种计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。

请参阅图10,图10是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。

参阅图10该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行一种数据获取方法。

该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种基于redis的任务分配方法。

该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务;将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列;根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;调用所述目标执行器以执行所述待处理任务。

在一实施例中,处理器502在实现所述读取所述若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值的步骤时,具体实现如下步骤:若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有执行器以使所有执行器确定其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间;控制每个执行器将其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间按照预设的权重比相加求和以得到标准值。

在一实施例中,处理器502在实现所述将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列的步骤时,具体实现如下步骤:将所有的标准值发送至redis节点;将所有的标准值在redis节点中按照数值大小进行排序以得到一中间序列;若所述中间序列存在数值相同的标准值,确定数值相同的每个标准值所对应的执行器;获取每个所确定的执行器已执行成功的任务数量;根据所获取的任务数量的大小将中间序列中的所确定的执行器对应的标准值进行再次排序,以得到标准值序列。

在一实施例中,处理器502在实现所述调用所述目标执行器以执行所述待处理任务的步骤之后,还包括:若所述目标执行器执行完成所述待处理任务,重新计算所述目标执行器的标准值;若所述目标执行器的标准值低于预设值,则将所述目标执行器设为优先目标执行器以在接收到新的任务分配请求时,直接作为目标执行器执行新的待处理任务。

应当理解,在本申请实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。

因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务;将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列;根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;调用所述目标执行器以执行所述待处理任务。

在一实施例中,所述处理器在执行所述计算机程序而实现所述若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值的步骤时,具体实现如下步骤:若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有执行器以使所有执行器确定其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间;控制每个执行器将其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间按照预设的权重比相加求和以得到标准值。

在一实施例中,所述处理器在执行所述计算机程序而实现所述将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列的步骤时,具体实现如下步骤:将所有的标准值发送至redis节点;将所有的标准值在redis节点中按照数值大小进行排序以得到一中间序列;若所述中间序列存在数值相同的标准值,确定数值相同的每个标准值所对应的执行器;获取每个所确定的执行器已执行成功的任务数量;根据所获取的任务数量的大小将中间序列中的所确定的执行器对应的标准值进行再次排序,以得到标准值序列。

在一实施例中,所述处理器在执行所述计算机程序而实现所述调用所述目标执行器以执行所述待处理任务的步骤之后,还包括:若所述目标执行器执行完成所述待处理任务,重新计算所述目标执行器的标准值;若所述目标执行器的标准值低于预设值,则将所述目标执行器设为优先目标执行器以在接收到新的任务分配请求时,直接作为目标执行器执行新的待处理任务。

所述存储介质为实体的、非瞬时性的存储介质,例如可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。


技术特征:

1.一种基于redis的任务分配方法,应用于调度器,其特征在于,所述方法包括:

若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务;

将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列;

根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;

调用所述目标执行器以执行所述待处理任务。

2.根据权利要求1所述的基于redis的任务分配的方法,其特征在于,所述性能参数包括cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间。

3.根据权利要求2所述的基于redis的任务分配的方法,其特征在于,所述若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值的步骤,包括:

若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有执行器以使所有执行器确定其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间;

控制每个执行器将其cpu使用率、内存使用率、磁盘使用率、已执行的任务数量、已执行成功的任务数量以及执行任务所耗费的时间按照预设的权重比相加求和以得到相应的标准值。

4.根据权利要求1所述的基于redis的任务分配的方法,其特征在于,所述将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列的步骤,包括:

将所有的标准值发送至redis节点;

将所有的标准值在redis节点中按照数值大小进行排序以得到一中间序列;

若所述中间序列存在数值相同的标准值,确定数值相同的每个标准值所对应的执行器;

获取每个所确定的执行器已执行成功的任务数量;

根据所获取的任务数量的大小将中间序列中的所确定的执行器对应的标准值进行再次排序,以得到标准值序列。

5.根据权利要求1所述的基于redis的任务分配的方法,其特征在于,所述调用所述目标执行器以执行所述待处理任务的步骤之后,还包括:

若所述目标执行器执行完成所述待处理任务,重新计算所述目标执行器的标准值;

若所述目标执行器的标准值低于预设值,则将所述目标执行器设为优先目标执行器以在接收到新的任务分配请求时,直接作为目标执行器执行新的待处理任务。

6.一种基于redis的任务分配装置,其特征在于,应用于调度器,所述装置包括:

处理单元,用于若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值,其中,所述任务分配请求包括至少一个待处理任务;

第一获取单元,用于将所有的标准值发送至redis节点中,以使redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列;

第一确定单元,用于根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;

调用单元,用于调用所述目标执行器以执行所述待处理任务。

7.如权利要求6所述的装置,其特征在于,所述第一获取单元,包括:

第二获取单元,用于将所有的标准值发送至redis节点;

第一排序单元,用于将所有的标准值在redis节点中按照数值大小进行排序以得到一中间序列;

第二确定单元,用于若所述中间序列存在数值相同的标准值,确定数值相同的每个标准值所对应的执行器;

第三获取单元,用于获取每个所确定的执行器已执行成功的任务数量;

第二排序单元,用于根据所获取的任务数量的大小将中间序列中的所确定的执行器对应的标准值进行再次排序,以得到标准值序列。

8.如权利要求6所述的装置,其特征在于,所述调用单元,包括:

第一计算单元,用于若所述目标执行器执行完成所述待处理任务,重新计算所述目标执行器的标准值;

判断单元,用于若所述目标执行器的标准值低于预设值,则将所述目标执行器设为优先目标执行器以在接收到新的任务分配请求时,直接作为目标执行器执行新的待处理任务。

9.一种计算机设备,其特征在于,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行如权利要求1-5任一项所述方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1-5中任一项所述方法的步骤。

技术总结
本发明实施例公开了一种基于Redis的任务分配方法、装置、计算机设备及存储介质,其中方法包括若接收到任务分配请求,解析所述任务分配请求以发送性能计算请求至所有的执行器,以使每个执行器均根据其性能参数以及预设规则计算相应的标准值;将所有的标准值发送至Redis节点中,以使Redis节点将所有的标准值按照数值大小进行排序以得到一标准值序列;根据所述标准值序列确定数值最小的标准值,并将该数值最小的标准值所对应的执行器作为目标执行器;调用所述目标执行器以执行所述待处理任务。本发明能够使得调度器通过Redis节点了解执行器的相关性能参数以便及时合理地进行任务调度分配,提高了整体的工作效率以及用户的使用体验度。

技术研发人员:孙朝和;申志彬;肖树德
受保护的技术使用者:深圳前海环融联易信息科技服务有限公司
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28152.html

最新回复(0)