一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种任务分配方法、装置、电子设备及存储介质与流程

2021-11-05 20:31:00 来源:中国专利 TAG:


1.本技术涉及数据处理领域,尤其涉及一种任务分配方法、装置、电子设备及存储介质。


背景技术:

2.当前在对多个任务进行处理时,为了提高处理效率,通常采用多台机器并行处理的方式。在采用多个机器对多个任务进行并行处理时,就需要为机器进行任务分配,合理高效的任务分配可以实现资源的优化配置,提升系统的整体效率。
3.目前,任务分配多采用手动分配,由各系统业务操作人员根据各机器的状态手动进行任务分配。但是此种分配方式,需要消耗人力资源,并且工作效率低下。


技术实现要素:

4.为了解决上述任务分配效率低下的技术问题,本技术提供了一种任务分配方法、装置、电子设备及存储介质。
5.第一方面,本技术提供了一种任务分配方法,包括:
6.确定每一任务处理对象各自在多个所述任务处理对象中的第一索引值;
7.对多个待处理任务的任务id分别进行设定运算,得到各所述待处理任务对应的第二索引值;
8.针对每一所述任务处理对象,将所述第二索引值与所述任务处理对象的第一索引值相同的所述待处理任务分配给所述任务处理对象,以由所述任务处理对象对分配的所述待处理任务进行处理。
9.作为一种可能的实现方式,在所述确定每一任务处理对象各自在多个所述任务处理对象中的第一索引值之前,还包括:
10.查找预设的注册表,所述注册表中包括多个对象以及所述对象的探活时间,所述探活时间定期更新;
11.将所述注册表中,所述探活时间完成定期更新的对象确定为任务处理对象。
12.作为一种可能的实现方式,在对多个待处理任务的任务id分别进行设定运算,得到各所述待处理任务对应的第二索引值之前,还包括:
13.查找预设的任务表,所述任务表中包括多个任务以及所述任务的消费状态,所述消费状态包括待消费、正在消费;
14.将所述任务表中,所述消费状态为待消费的所述任务确定为待处理任务。
15.作为一种可能的实现方式,所述确定所述任务处理对象在多个所述任务处理对象中的第一索引值,包括:
16.根据各所述任务处理对象的ip地址,对各所述任务处理对象进行排序;
17.针对每一所述任务处理对象,将所述任务处理对象在排序结果中的排序位置值确定为所述任务处理对象在多个所述任务处理对象中的第一索引值。
18.作为一种可能的实现方式,所述对多个待处理任务的任务id分别进行设定运算,得到各所述待处理任务对应的第二索引值,包括:
19.针对每一待处理任务,将所述待处理任务的任务id与n进行取模运算,将运算结果确定为所述待处理任务对应的第二索引值,所述n为多个所述任务处理对象的数量。
20.作为一种可能的实现方式,所述根据各所述任务处理对象的ip地址,对各所述任务处理对象进行排序,包括:
21.确定各所述任务处理对象的ip地址的ascii码值;
22.按照ascii码值从大到小,或者从小到大的顺序,对各所述任务处理对象进行排序。
23.第二方面,本技术实施例还提供了一种任务分配装置,包括:
24.第一索引值确定模块,用于确定每一任务处理对象各自在多个所述任务处理对象中的第一索引值;
25.第二索引值确定模块,用于对多个待处理任务的任务id分别进行设定运算,得到各所述待处理任务对应的第二索引值;
26.分配模块,用于针对每一所述任务处理对象,将所述第二索引值与所述任务处理对象的第一索引值相同的所述待处理任务分配给所述任务处理对象,以由所述任务处理对象对分配的所述待处理任务进行处理。
27.作为一种可能的实现方式,所述第二索引值确定模块,具体用于:
28.针对每一待处理任务,将所述待处理任务的任务id与n进行取模运算,将运算结果确定为所述待处理任务对应的第二索引值,所述n为多个所述任务处理对象的数量。
29.第三方面,本技术实施例还提供了一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的任务分配程序,以实现第一方面所述的任务分配方法。
30.第四方面,本技术实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面所述的任务分配方法。
31.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
32.本技术实施例提供一种任务分配方法,确定每一任务处理对象各自在多个任务处理对象中的第一索引值,对多个待处理任务的任务id分别进行设定运算,得到各待处理任务对应的第二索引值,针对每一所述任务处理对象,将所述第二索引值与任务处理对象的第一索引值相同的待处理任务分配给任务处理对象,以由任务处理对象对分配的待处理任务进行处理,如此实现对任务的自动分配,无需人工参与,节省了人力资源,提升了工作效率。
33.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
34.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
35.图1是根据一示例性实施例示出的一种任务处理系统的示意图。
36.图2是根据一示例性实施例示出的一种任务分配方法的流程图。
37.图3是根据一示例性实施例示出的一种任务分配装置的示意图。
38.图4是根据一示例性实施例示出的一种电子设备的示意图。
具体实施方式
39.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
40.参见图1,图1为本技术实施例提供的一种任务处理系统的示意图,如图1所示,该系统包括任务队列、对象和负载均衡器。
41.其中,对象例如为计算机、服务器等机器,可用于任务处理。需要说明的是,对象的数量可以根据实际需求设置,本技术实施例中仅以设置有3 个对象为例进行说明。
42.任务队列中存储有多个任务,例如在对数据库进行更新的场景中,任务可以为用于对数据库进行新增、删除等操作的任务,每个对象中分别部署有用于进行任务处理的进程,每个对象可以通过部署的进程对任务队列中存储的任务进行消费。
43.在对任务进行消费之前,需要先利用负载均衡器将任务分配到各对象,从而使每个对象分别对各自分配的任务进行并行处理。
44.基于图1所示例的任务处理系统,为了提高任务分配效率,本技术实施例提供了一种任务分配方法。
45.参见图2,为本技术的一个实施例提供的一种任务分配方法的流程示意图,该方法可以应用于图1所述的负载均衡器,如图2所示,该方法可以包括如下步骤:
46.s21.确定每一任务处理对象各自在多个任务处理对象中的第一索引值。
47.在实践中,图1中的各对象有时可能会出现故障,而采用存在故障的对象进行任务处理可能会出现任务处理失败等问题,因此为了保障任务可以顺利处理,对于存在故障的对象,不再进行任务分配。基于此,在本技术实施例中,首先从所有对象中确定出当前处于正常运行状态的对象,之后,将当前处于运行状态的对象作为任务处理对象进行任务分配。
48.下面首先说明如何从所有对象中确定出当前处于正常运行状态的对象,也即任务处理对象:
49.作为一个实施例,可以预先设置注册表,注册表中包括多个对象的对象信息,其中对象信息可以包括对象id,对象ip和探活时间,例如表1所示:
50.表1
[0051][0052]
其中,在对象处于正常运行状态时,其对应的探活时间是可以定期更新的,若对象的探活时间没有定期更新,则可以确定该对象可能存在故障 (比如宕机)。因此可以通过查看对象的探活时间是否完成定期更新,来确定对象是否处于正常运行状态。在实际应用中,可以通过定期(比如每隔1小时)向各对象发送探活数据,并依据对象基于探活数据返回的应答信息来更新各对象的探活时间。具体的,针对任一对象,向该对象发送探活数据,以检测该对象是否处于存活状态(即正常运行状态),若接收到该对象的应答信息,则将注册表中该对象的探活时间更新为接收到该对象的应答信息的时间,若没有接收到该对象的应答信息,则不对注册表中该对象的探活时间进行更新。
[0053]
基于上述内容,可以通过查找预设的注册表,将注册表中,对应的探活时间完成定期更新的对象确定为任务处理对象,具体的,可以获取各对象的最新探活时间和当前时间,针对每个对象,计算对象的最新探活时间与当前时间的差值,将差值与预设的时间值进行比较,若比较出差值小于或等于预设的时间值,则确定该对象的探活时间完成定期更新,否则确定该对象的探活时间没有完成定期更新,其中预设的时间值为相邻两次发送探活数据的时间间隔,比如若每隔1小时发送一次探活数据,则预设的时间值就是1小时。
[0054]
在确定出任务处理对象后,确定各任务处理对象的第一索引值,其中不同任务处理对象的第一索引值不同,以便基于各任务处理对象的第一索引值,为各任务处理对象分配任务。
[0055]
作为一个实施例,可以根据各任务处理对象的ip地址,对各任务处理对象进行排序,然后针对每一任务处理对象,将该任务处理对象在排序结果中的排序位置值确定为该任务处理对象在多个任务处理对象中的第一索引值。其中,排序位置值可以依次为0,1,2,
……
,n

1,其中n为任务处理对象的数量。采用此种方式,可以保证得到的多个任务处理对象的多个第一索引值为连续的不同值。
[0056]
作为一个实施例,在对任务处理对象进行排序时,可以先将各任务处理对象的ip地址转换为ascii码值,然后再按照ascii码值从大到小,或者从小到大的顺序,对各任务处理对象进行排序。
[0057]
在实际应用中,可以基于预设的ascii码编码表将任务处理对象的ip 地址转换为对应的ascii码值。
[0058]
s22.对多个待处理任务的任务id分别进行设定运算,得到各所述待处理任务对应的第二索引值。
[0059]
在本技术实施例中,待处理任务为任务队列中未被消费的任务。而任务队列中通常除了未被消费的任务之外,还包括正在被消费的任务,因此在执行s22之前可以先从任务
队列中确定出待处理任务。
[0060]
作为一个实施例,可以预设设置任务表,任务表中包括任务队列中所有任务的任务信息,其中任务信息可以包括任务id,消费状态、任务参数、创建时间等,其中消费状态包括待消费和正在消费。例如,任务表可以如表2所示:
[0061]
表2
[0062][0063][0064]
其中params字段可以如下所示:
[0065][0066]
上述params字段只是一个示例,具体的字段内容可以根据实际情况修改。
[0067]
基于上述内容,可以根据任务表确定待处理任务,具体的,可以查找任务表,将任
务表中,消费状态为待消费的任务确定为待处理任务。
[0068]
在确定出待处理任务之后,即可通过对各待处理任务的任务id分别进行设定运算,来得到各待处理任务对应的第二索引值。
[0069]
作为一个实施例,可以采用下述方式来计算各待处理任务对应的第二索引值:针对每一待处理任务,将该待处理任务的任务id与n进行取模运算,将运算结果确定为该待处理任务对应的第二索引值,其中,n为多个任务处理对象的数量。
[0070]
通常任务id由数字组成,在将任务id与n进行取模时,可以将任务 id作为一个数值来与n进行计算,比如若任务id为3,n为3,则任务id 与n进行取模运算的运算公式为3%3,得到的运算结果为0。
[0071]
s23.针对每一任务处理对象,将第二索引值与任务处理对象的第一索引值相同的待处理任务分配给任务处理对象,以由任务处理对象对分配的待处理任务进行处理。
[0072]
在本技术实施例中,针对每一任务处理对象,分别执行下述步骤:将任务处理对象的第一索引值与各待处理任务的第二索引值进行比较,比较出对应的第二索引值与第一索引值相同的待处理任务,并将比较出的待处理任务分配给该任务处理对象。如此便可以完成对各任务处理对象的任务分配。
[0073]
在实际应用中,对n进行取模运算,得到的运算结果为[0,n

1]区间内的整数值,根据对s11的描述可知,任务处理对象的第一索引值也为[0, n

1]区间内的整数值。基于此,任一待处理任务的第二索引值肯定有一个与其对应的第一索引值,因此按照将第二索引值与任务处理对象的第一索引值相同的待处理任务分配给任务处理对象的任务分配方式进行任务分配,可以保证每个待处理任务都会被分配到一个任务处理对象中,不会出现待处理任务没有被分配和同一待处理任务被分配给同一任务处理对象的情况,提高了任务分配的准确性。
[0074]
本技术实施例提供的任务分配方法,通过确定每一任务处理对象各自在多个任务处理对象中的第一索引值,对多个待处理任务的任务id分别进行设定运算,得到各待处理任务对应的第二索引值,针对每一所述任务处理对象,将所述第二索引值与任务处理对象的第一索引值相同的待处理任务分配给任务处理对象,以由任务处理对象对分配的待处理任务进行处理,实现了对任务的自动分配,无需人工参与,节省了人力资源,提升了工作效率;进一步的,能够避免由于人为失误导致的任务遗漏、任务重复分配等问题。
[0075]
参见图3,为本技术实施例提供的一种任务分配装置的示意图,该装置可以应用于图1所示的任务处理系统。如图3所示,该装置可以包括:
[0076]
第一索引值确定模块301,用于确定每一任务处理对象各自在多个任务处理对象中的第一索引值;
[0077]
第二索引值确定模块302,用于对多个待处理任务的任务id分别进行设定运算,得到各待处理任务对应的第二索引值;
[0078]
分配模块303,用于针对每一任务处理对象,将第二索引值与任务处理对象的第一索引值相同的待处理任务分配给任务处理对象,以由任务处理对象对分配的待处理任务进行处理。
[0079]
作为一种可能的实现方式,上述装置还可以包括(图3中未示出):
[0080]
处理任务对象确定模块,用于在确定每一任务处理对象各自在多个任务处理对象
中的第一索引值之前,查找预设的注册表,注册表中包括多个对象以及对象的探活时间,其中探活时间定期更新;
[0081]
将所述注册表中,所述探活时间完成定期更新的对象确定为任务处理对象。
[0082]
作为一种可能的实现方式,上述装置还可以包括(图3中未示出):
[0083]
待处理任务确定模块,用于在对多个待处理任务的任务id分别进行设定运算,得到各待处理任务对应的第二索引值之前,查找预设的任务表,任务表中包括多个任务以及任务的消费状态,消费状态包括待消费、正在消费;
[0084]
将任务表中,所述消费状态为待消费的所述任务确定为待处理任务。
[0085]
作为一种可能的实现方式,第一索引值确定模块301,具体用于:
[0086]
排序子模块,用于根据各所述任务处理对象的ip地址,对各所述任务处理对象进行排序;
[0087]
确定子模块,用于针对每一所述任务处理对象,将所述任务处理对象在排序结果中的排序位置值确定为所述任务处理对象在多个所述任务处理对象中的第一索引值。
[0088]
作为一种可能的实现方式,第二索引值确定模块302,具体用于:
[0089]
针对每一待处理任务,将所述待处理任务的任务id与n进行取模运算,将运算结果确定为所述待处理任务对应的第二索引值,所述n为多个所述任务处理对象的数量。
[0090]
作为一种可能的实现方式,排序子模块具体用于:
[0091]
确定各所述任务处理对象的ip地址的ascii码值;
[0092]
按照ascii码值从大到小,或者从小到大的顺序,对各所述任务处理对象进行排序。
[0093]
请参阅图4,图4是本技术的另一实施例提供的一种电子设备的结构示意图。
[0094]
如图4所示,本实施例提供的电子设备包括:至少一个处理器401、存储器402、至少一个网络接口403和其他用户接口404。电子设备400 中的各个组件通过总线系统405耦合在一起。可理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。
[0095]
其中,用户接口404可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等)。
[0096]
可以理解,本发明实施例中的存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read

only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electrically eprom, eeprom)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器 (synch link dram,sldram)和直接内存总线随机存取存储器(directrambus ram,drram)。本文描述的存储器402旨在包括但不限于这些和任意其它适
合类型的存储器。
[0097]
在一些实施方式中,存储器402存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统4021和应用程序4022。
[0098]
其中,操作系统4021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序 4022,包含各种应用程序,例如媒体播放器(media player)、浏览器 (browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序4022中。
[0099]
在本发明实施例中,通过调用存储器402存储的程序或指令,具体的,可以是应用程序4022中存储的程序或指令,处理器401用于执行各方法实施例所提供的方法步骤,例如包括:
[0100]
确定每一任务处理对象各自在多个所述任务处理对象中的第一索引值;
[0101]
对多个待处理任务的任务id分别进行设定运算,得到各待处理任务对应的第二索引值;
[0102]
针对每一任务处理对象,将第二索引值与任务处理对象的第一索引值相同的待处理任务分配给所述任务处理对象,以由任务处理对象对分配的待处理任务进行处理。
[0103]
上述本发明实施例揭示的方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列 (field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器 401读取存储器402中的信息,结合其硬件完成上述方法的步骤。
[0104]
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,asic)、数字信号处理器(digital signal processing,dsp)、数字信号处理设备 (dspdevice,dspd)、可编程逻辑设备(programmable logic device,pld)、现场可编程门阵列(field

programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术功能的其它电子单元或其组合中。
[0105]
对于软件实现,可通过执行本文功能的单元来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
[0106]
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
[0107]
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的任务分配方法。
[0108]
处理器用于执行存储器中存储的任务分配程序,以实现以下在电子设备侧执行的任务分配方法的步骤:
[0109]
确定每一任务处理对象各自在多个所述任务处理对象中的第一索引值;
[0110]
对多个待处理任务的任务id分别进行设定运算,得到各待处理任务对应的第二索引值;
[0111]
针对每一任务处理对象,将第二索引值与任务处理对象的第一索引值相同的待处理任务分配给所述任务处理对象,以由任务处理对象对分配的待处理任务进行处理。
[0112]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0113]
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
[0114]
需要说明的是,在本技术的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”的含义是指至少两个。
[0115]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0116]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列 (pga),现场可编程门阵列(fpga)等。
[0117]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0118]
此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0119]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0120]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0121]
尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献