CN110457128A - 任务分配方法、装置和系统 - Google Patents

任务分配方法、装置和系统 Download PDF

Info

Publication number
CN110457128A
CN110457128A CN201910623218.5A CN201910623218A CN110457128A CN 110457128 A CN110457128 A CN 110457128A CN 201910623218 A CN201910623218 A CN 201910623218A CN 110457128 A CN110457128 A CN 110457128A
Authority
CN
China
Prior art keywords
cryptographic hash
task
target object
goal
identity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910623218.5A
Other languages
English (en)
Other versions
CN110457128B (zh
Inventor
刘永生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910623218.5A priority Critical patent/CN110457128B/zh
Publication of CN110457128A publication Critical patent/CN110457128A/zh
Application granted granted Critical
Publication of CN110457128B publication Critical patent/CN110457128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本说明书提供了一种任务分配方法、装置和系统。其中,该方法通过分别获取并根据申领任务的目标对象的身份标识,以及待分配的目标任务的任务标识,确定与目标对象对应的第一哈希值,以及与目标任务对应的第二哈希值;再建立并根据第一哈希值与第二哈希值之间的映射关系,将目标任务分配给对应的目标对象,从而能够高效、均衡地将多个目标任务以并行的方式分配给多个同时申领任务的目标对象进行处理,避免了多个目标对象针对目标任务的资源竞争,提高了任务分配效率。

Description

任务分配方法、装置和系统
技术领域
本说明书属于互联网技术领域,尤其涉及一种任务分配方法、装置和系统。
背景技术
在数据处理过程中,通常会由客户端向服务器申领任务,再由服务器向该客户端分配并发送相应的待处理的任务进行处理。当系统中的多个客户端同时向服务器申领任务时,多个客户端之间会存在针对任务的资源竞争。
因此,亟需一种任务分配方法,能够高效、均衡地同时为多个申领任务的客户端进行任务分配。
发明内容
本说明书目的在于提供一种任务分配方法、装置和系统,能够高效、均衡地将多个目标任务并行分配给多个同时申领任务的目标对象进行处理,提高了任务分配效率。
本说明书提供的一种任务分配方法、装置和系统是这样实现的:
一种任务分配方法,包括:获取多个目标对象的身份标识,以及多个目标任务的任务标识;根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
一种任务分配方法,包括:获取多个目标对象的任务申领请求;响应所述多个目标对象的任务申领请求,获取多个目标对象的身份标识,以及多个目标任务的任务标识;根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
一种任务分配装置,包括:获取模块,用于获取多个目标对象的身份标识,以及多个目标任务的任务标识;确定模块,用于根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;分配模块,用于根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
一种任务分配装置,包括:第一获取模块,用于获取多个目标对象的任务申领请求;第二获取模块,用于响应所述多个目标对象的任务申领请求,获取多个目标对象的身份标识,以及多个目标任务的任务标识;确定模块,用于根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;分配模块,用于根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现获取多个目标对象的身份标识,以及多个目标任务的任务标识;根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取多个目标对象的身份标识,以及多个目标任务的任务标识;根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
一种任务分配系统,包括多个客户端和服务器,其中,所述服务器用于实现获取多个目标对象的身份标识,以及多个目标任务的任务标识;根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
本说明书提供的一种任务分配方法、装置和系统,由于通过分别获取并根据申领任务的目标对象的身份标识,以及待分配的目标任务的任务标识,确定与目标对象对应的第一哈希值,以及与目标任务对应的第二哈希值;再建立并根据第一哈希值与第二哈希值之间的映射关系,将目标任务分配给对应的目标对象,从而能够高效、均衡地将多个目标任务并行分配给多个同时申领任务的目标对象进行处理,提高了任务分配效率,避免了多个目标对象同时申领任务时存在的针对待分配任务的资源竞争,解决了现有方法中无法并行地将多个目标任务同时分配给多个不同目标对象进行处理的技术问题。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的任务分配系统的结构组成的一种实施例的示意图;
图2是在一个场景示例中,应用本说明书实施例提供的任务分配方法的一种实施例的示意图;
图3是在一个场景示例中,应用本说明书实施例提供的任务分配方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的任务分配方法的一种实施例的示意图;
图5是在一个场景示例中,应用本说明书实施例提供的任务分配方法的一种实施例的示意图;
图6是在一个场景示例中,应用本说明书实施例提供的任务分配方法的一种实施例的示意图;
图7是本说明书实施例提供的任务分配方法的流程的一种实施例的示意图;
图8是本说明书实施例提供的服务器的结构的一种实施例的示意图;
图9是本说明书实施例提供的任务分配装置的结构的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到现有的任务分配方法大多是预先将待分配的任务设置分布式锁,再将多个同时申领任务的目标对象按照一定的规则进行排队,再解锁以串行的方式依次给队列中的目标对象分配任务。上述方法虽然能够缓解多个目标对象申领任务时的资源竞争,但却使得任务的分配过程只能以串行的方式实现,影响了分配效率。
针对产生上述情况以及所存在的问题,本说明书考虑可以引入哈希值来表征待分配的目标任务以及申领任务的目标对象,目标任务的哈希值与目标对象的哈希值之间的映射关系,来将目标任务分配给对应的目标对象,从而可以不需要使用分布式锁,通过并行的方式同时为多个不同的目标对象高效地进行目标任务的分配,避免了多个目标对象同时申领任务时存在的针对待分配任务的资源竞争,解决了现有方法中无法并行地将多个目标任务同时分配给多个不同目标对象进行处理的技术问题。
本说明书实施例提供一种任务分配系统,该系统具体可以包括服务器和多个客户端。具体可以参阅图1所示。其中客户端可以通过有线或无线的方式与服务器耦合,以便进行数据交互。
具体实施时,上述多个客户端可以用于处理所分配的任务,并且当客户端处于空闲状态时,可以向服务器发送任务申领请求。服务器可以用于获取并响应客户端的任务申领请求,获取客户端的身份标识,以待分配的多个目标任务的任务标识;根据客户端的身份标识确定出与客户端对应的第一哈希值;根据目标任务的任务标识,确定与目标任务对应的第二哈希值;再根据第一哈希值与第二哈希值的映射关系,将多个目标任务分配给对应的客户端。客户端可以用于接收并处理所分配的目标任务。
在本实施例中,所述服务器可以是一种应用于业务处理平台一侧,能够实现数据传输、数据处理等功能的业务处理服务器。具体的,所述服务器可以为一个具有数据运算、存储功能以及网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施方式中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在本实施例中,所述客户端可以是一种应用于任务处理方一侧,能够进行具体的任务处理的设备。具体地,所述客户端例如可以为台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、导购终端、具有网络访问功能的电视机等。或者,所述客户端也可以为能够运行于上述电子设备中的软件应用。例如,可以是在手机上运行的某APP等。
在一个场景示例中,参阅图2所示,TT咨询网站的业务处理系统可以应用本说明书实施例提供的任务分配方法将大量待审核的文本信息高效、均衡地分配给多个业务员进行审核。
在本场景示例中,TT咨询网站上每天都会处理大量的网民上传发布的文本信息,上述文本信息中可能会存在一些包含有违规内容的文本信息。通常该网站的业务处理系统会利用预先训练的文本内容识别模型将包含有违规内容的文本信息识别筛选出来,并作删除处理。但是,由于网络信息内容变化迅速,每天都会存在部分文本信息基于上述文本内容识别模型无法识别出是否包含有违规内容,这时该网站的业务处理系统负责分配的服务器会将这类文本内容识别模型无法识别的待审核的文本信息分别作为一个审核任务,分配给审核员进行进一步的人工审核处理,以及时地发现包含有违规内容的文本信息。
具体实施时,该服务器会根据审核员的审核情况对待审核的文本信息进行分配。通常当审核员审核完之前分配的文本信息后,会通过客户端向服务器发送了任务申领请求,以申领下一批的待审核的文本信息。这时服务器会从存储有待审核的文本内容识别模型无法识别出的文本信息中抽取一个文本信息作为一个审核任务分配给该审核员审核。
但是,当多个审核员同时通过各自的客户端向服务器发送任务申领请求时,如果基于现有方法,服务器是无法同时并行为多个审核员分配待审核的文本信息的。即,只能将多个审核员先按照一定的规则(例如按照审核员的身份ID的大小顺序)进行排队,再依次为该队列中各个审核员分配待审核的文本信息,即对应的审核任务。由于上述分配过程是以串行的方式实现的,服务器不能并行同时对多个审核员进行分配,势必会增加分配过程所耗用的时间,影响分配效率。当同一时间内申领任务的审核员数量较多是,上述问题会更加严重。
而在本场景示例中,服务器在接收到多个不同的审核员所发送的任务申领请求时,可以先通过解析任务申领请求,得到申领任务的审核员的身份标识(例如,审核员登录的账户名称、审核员的身份ID等等)。同时,服务器可以根据所接收到任务申领请求的数量,从数据库中获取数量与任务申领请求的数量匹配的待审核的文本信息作为待分配的审核任务。
例如,如果服务器所接收到的任务申领请求的数量为100,即有100个审核员请求申领审核任务。服务器可以从数据库中随机抽取相同数量,例如100个待审核的文本信息作为待分配的审核任务。
进一步,服务器还会获取上述待分配的审核任务的任务标识(例如,任务的流水号、任务的身份ID等等)。
在服务器获取了申领任务的审核员的身份标识,以及待分配的审核任务的任务标识后,可以分别计算确定出与各个审核员对应的第一哈希值,以及与各个待分配的审核任务对应的第二哈希值。
具体的,服务器可以先对审核员的身份标识进行MD5计算,得到对应的MD5值。其中,通过进行上述MD5(Message-Digest Algorithm,消息摘要算法)计算,可以将审核员的身份标识转化为一串包括32个字符的字符串,即对应的MD5值。再对上述MD5值进行位运算,哈希出一个整数值,即所述第一哈希值。其中,每一个第一哈希值与一个审核员对应。
类似的,服务器可以审核任务的任务标识先进行MD5计算,得到对应的MD5值,再对上述MD5值进行位运算,第二哈希值。其中,每一个第二哈希值与一个审核任务对应。
进一步,服务器可以根据与多个审核员对应的多个第一哈希值和,与多个审核任务对应的多个第二哈希值,通过构建哈希结果环来确定出第一哈希值与第二哈希值的映射关系。
具体的,可以参阅图3所示,服务器先将多个第一哈希值和多个第二哈希值按照数值从小到大进行排序,得到排序后的第一哈希值和第二哈希值。其中,Pi可以表示为与编号为i的审核员对应的第一哈希值,Tk表示为与编号为k的审核任务对应的第二哈希值。沿顺时针方向,将上述排序后的第一哈希值和第二哈希值分别投射到圆环上,得到对应的哈希结果环。进而可以利用上述哈希结果环依次确定出第一哈希值与第二哈希值的映射关系。具体的,可以沿顺时针方向,将上述哈希结果环上任意两个相邻的第一哈希值,以及第一哈希值之间的第二哈希值作为一个映射组。
例如,参阅图4所示,可以沿顺时针方向,将哈希结果环上的第一哈希值P1、P2,以及P1、P2之间的第二哈希值T1作为一个映射组,针对该映射组,将其中的第二哈希值T1映射到该映射组中位于沿顺时针方向靠前位置处的一个第一哈希值,即P1上,从而建立了第二哈希值T1与第一哈希值P1之间的映射关系。按照上述方式,可以利用哈希结果环建立得到各个第二哈希值与对应的第一哈希值的映射关系。
在得到第一哈希值和第二哈希值的映射关系后,可以根据第一哈希值和第二哈希值的映射关系,通过并行的方式同时将多个待分配的审核任务分配给对应的审核员。
例如,可以根据第一哈希值和第二哈希值的映射关系,将第二哈希值Tk所对应的审核任务(即编号为k的审核任务)分配给所映射的第一哈希值P1所对应的审核员(即编号为1的审核员)。按照上述方式,可以分别将多个待分配的审核任务分别分配各个审核员,进而可以根据上述的分配结果,将上述待分配的审核任务通过并行的方式分别发送给对应的审核员进行审核处理。例如,将编号为k的审核任务发送给编号为1的审核员。进而审核员可以对新分配给自己的待审核的文本信息进行是否存在违规内容的审核识别。
在本场景示例中,需要说明的是,由于在具体分配之前就已经基于第一哈希值和第二哈希值之间存在的映射关系,确定了各个待分配的审核任务所对应的审核员,因此多个审核员在同时申领审核任务时不再存在针对任务的资源竞争。同时,由于在分配过程没有使用分布式锁,也没有采用对审核员进行排队依次分配审核任务的方式来确定并分配对应任务,因此可以采用并行的方式,同时为多个审核员分配所对应的审核任务,且分配给不同审核员的审核任务不会出现交叉重叠。
由上述场景示例可见,本说明书提供的任务分配方法,由于通过分别获取并根据申领任务的目标对象的身份标识,以及待分配的目标任务的任务标识,确定与目标对象对应的第一哈希值,以及与目标任务对应的第二哈希值;再建立并根据第一哈希值与第二哈希值之间的映射关系,将目标任务分配给对应的目标对象,从而能够高效、均衡地将多个目标任务并行分配给多个同时申领任务的目标对象进行处理,提高了任务分配效率,避免了多个目标对象同时申领任务时存在的针对待分配任务的资源竞争,解决了现有方法中无法并行地将多个目标任务同时分配给多个不同目标对象进行处理的技术问题。
在另一个场景示例中,考虑到如果基于第一哈希值和第二哈希值的映射关系进行审核任务的分配时,由于散列投射于哈希结果环第一哈希值和第二哈希值是随机的,可能出现例如图5所示的分布不均衡的情况,即大量的第二哈希值主要分布在其中两个相邻的第一哈希值P3和P1之间,而其他相邻的第一哈希值之间分布的第二哈希值相对较少,导致可能在任务分配的时候出现某个审核员分配到了大量的审核任务,而另一部分审核员却没有分配到足够的审核任务,例如P3所对应的审核员C被同时分配了T4、T5、T6、T7、T8、T9、T10所分别对应的7个审核任务,而P2所对应的审核员只被分配了T2、T3所分别对应的2个审核任务,P1所对应的审核员只被分配了T1所对应的1个审核任务。这种分配结果显然是不均衡、不合理的。
针对上述问题,为了使得任务分配更加的均衡、合理,服务器在确定了第一哈希值和第二哈希值,构建的哈希结果环后,还可以对哈希结果环中的第一哈希值和第二哈希值的分布是否均衡进行判断。如果发现哈希结果环中第一哈希值和第二哈希值分布不均衡,存在数据倾斜,则可以通过扩充审核员所对应的哈希值的方式来对哈希结果环进行调整,使得调整后的哈希结果环上的第一哈希值和第二哈希值的分布更加均衡。
具体的,服务器可以根据审核员的身份标识,按照预设的构建规则,构建对应该审核员的多个虚拟身份标识。例如,对该审核员A的身份标识1001分别进行加减0.5的处理,得到对应的两个处理结果:1001.5和1000.5,作为对应该审核员A的两个虚拟身份标识。其中,上述两个虚拟身份标识与身份标识1001一样,都指示同一个审核员A。
进而可以按照计算第一哈希值的方式,分别根据审核员的虚拟身份标识计算对应的MD5值,再对MD5值进行位运算,哈希出对应的整数值作为第三哈希值。与第一哈希值相同,每一个第三哈希值都对应一个审核员。再将所生成的第三哈希值作为扩充的第一哈希值也投射到哈希结果环上,得到调整后的哈希结果环。
例如,对于审核员A,基于原本的身份标识1001得到的第一哈希值为P1,基于该审核员的两个虚拟身份标识得到对应的两个第三哈希值分别为:P1+和P1—。P1、P1+和P1—都与审核员A对应。
需要说明的是,P1、P1+和P1—都是一种哈希值,由于哈希值敏感性较高,当用于生成哈希值的身份标识出现了很细微的修改,所生成的哈希值也会出现很大差异。例如,可以参阅图6所示P1+和P1—,散列分布在哈希结果环的位置与P1的投射位置距离很远。按照相同的方法可以分别计算对应审核员B(与第一哈希值P2对应)的第三哈希值P2+和P2—,对应审核员C(与第一哈希值P3对应)的第三哈希值P3+和P3—,再将上述第三哈希值连同之前使用的第一哈希值、第二哈希值按照数值大小排序后投射到圆环中,得到图6所示的调整后的哈希结果环。
进而可以根据调整后的哈希结果环,将第三哈希值作为一种补充的第一哈希值,重新确定第一哈希值和第二哈希值的映射关系,再根据所确定的第一哈希值和第二哈希值的映射关系,来更加均衡地分配审核任务。
例如,参阅图6所示,按照调整后的哈希结果环所确定的映射关系,不同审核员所分配到的审核任务近似相等。例如,审核员A最终被分配了T1、T5、T8所分别对应的3个审核任务。审核员B最终被分配了T2、T3、T6、T10所分别对应的4个审核任务。审核员C最终被分配了T4、T7、T9所分别对应的3个审核任务。从而有效地避免了数据倾斜,达到均衡、合理分配审核任务的效果。
由上述场景示例可见,本说明书提供的任务分配方法,还通过根据目标对象的身份标识,构建虚拟身份标识,再根据上述虚拟身份标识确定出除第一哈希值之外的同样与目标对象对应的第三哈希值,以对第一哈希值进行扩充,来确定目标对象与目标任务的对应关系,从而能避免在分配任务时出现数据倾斜,更加均衡地分配目标任务。
参阅图7所示,本说明书实施例提供了一种任务分配方法,其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容。
S71:获取多个目标对象的身份标识,以及多个目标任务的任务标识。
在本实施例中,上述目标对象具体可以理解为一种等待分配任务的对象。具体的,上述目标对象可以是负责具体任务处理的人;也可以是具有数据处理能力,能够进行与分配的任务对应的数据处理的电子设备等。当然,上述所列举的目标对象只是一种示意性说明。具体实施时,根据具体的应用场景,还可以引入其他类型的目标对象。对此,本说明书不作限定。
在本实施例中,上述目标任务具体可以理解为一种尚未处理等待分配给对应的目标对象处理的任务数据。具体的,上述目标任务可以是对某个文本信息中是否存在违规内容的审核;也可以是对某个用户所发起的咨询请求的答复;还可以是对网上接收到的某个订单的处理等等。当然,上述所列举的目标任务只是一种示意性说明。根据具体的应用场景,上述目标任务还可以包含有其他的内容。对此,本说明书不作限定。
在本实施例中,上述目标对象的身份标识具体可以理解为一种与目标对象对应,用于指示目标对象的标识信息。具体的,上述目标对象的身份标识可以是目标对象的账户名称,也可以是目标对象的身份ID,还可以目标对象的数字编号等等。上述目标任务的任务标识具体可以理解为一种与目标任务对应,用于指示目标任务的标识信息。具体的,上述目标任务的任务标识可以是目标任务的流水号,也可以是目标任务的任务编号或者任务ID等等。对于上述目标对象身份标识和目标任务的任务标识的具体形式和内容,本说明书不作限定。
在本实施例中,上述目标任务具体可以是预先存储在数据库中。例如,可以在实施前,将目标任务存储在MySQL资源池中,并在存储目标任务时,为每个目标任务分别分配一个对应的任务ID作为该目标任务的任务标识。当然,上述所列举的目标任务的存储方式只是一种示意性说明。
在本实施例中,目标对象可以通过向服务器发送任务申领请求,申领目标任务;服务器可以响应任务申领请求,所请求申领任务的目标对象分配并发送目标任务。
在本实施例中,具体实施时,服务器可以响应目标对象发送的任务申领请求,通过读取解析任务申领请求,获取任务申领请求中携带的目标对象的身份标识。当然,服务器也可以通过查询本地缓存,获取目标对象的身份标识等。具体实施时,根据具体情况,服务器也可采用其他合适的方式获取目标对象的身份标识。对此,本说明书不作限定。
在本实施例中,具体实施时,服务器可以从数据库,例如MySQL(一种关系型数据库管理系统)的资源池中随机捞取多个未处理的任务作为多个目标任务,并从上述多个目标任务中提取获得目标任务的任务标识。
在本实施例中,具体实施时,服务器可以在未接收到目标对象的任务申领请求之前,先获取多个目标对象的身份标识(例如,线上所有目标对象的身份标识);再根据多个目标对象的数量,获取匹配数量的多个目标任务,并得到上述多个目标任务的任务标识,以便后续对上述多个目标对象进行目标任务的预分配。
服务器还可以在接收到目标对象的任务申领请求后,响应目标对象的任务申领请求,只获取发送任务申领请求的目标对象的身份标识;再根据发送任务申领请求的目标对象的数量,获取匹配数量的多个目标任务,并得到上述多个目标任务的任务标识,以便后续可以快速、并行地针对同时发送了任务申领请求的多个目标对象进行目标任务的即时分配。
S73:根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值。
在本实施例中,上述每一个第一哈希值都与一个目标对象的身份标识一一对应,每一个第二哈希值与的一个目标任务的任务标识一一对应。因此,可以通过第一哈希值指示出对应的目标对象,通过第二哈希值指示出对应的目标任务。
在本实施例中,上述根据所述目标对象的身份标识确定与目标对象对应的第一哈希值,具体实施时,可以包括以下内容:根据目标对象的身份标识进行MD5(Message-DigestAlgorithm,消息摘要算法)计算,得到对应的MD5值;对上述MD5值进行位运算,哈希得到一个整数值,作为对应的第一哈希值。其中,上述MD5具体可以理解为一种数据加密算法,可以将数据加密成16进制表示的32位的字符串。上述位运算具体可以理解为一种基于数据的二进制位进行的操作处理方式。
在本实施例中,上述根据所述目标任务的任务标识确定与目标任务对应的第二哈希值,具体实施时,可以包括以下内容:根据目标任务的任务标识进行MD5计算,得到对应的MD5值;对上述MD5值进行位运算,哈希得到一个整数值,作为对应的第二哈希值。
在本实施例中,由于不需要使用分布式锁,因此可以通过并行计算的方式同时对上述多个目标对象的第一哈希值和多个目标任务的第二哈希值进行计算,以提高处理效率。
S75:根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
在本实施例中,上述第一哈希值和第二哈希值的映射关系具体可以理解为一种基于哈希结果环所确定的第一哈希值与第二哈希值的对饮关系。
其中,上述哈希结果环(也称为哈希环、一致性哈希环)具体可以理解为一种基于一致性哈希(Hash)算法所建立的,按照一定顺序散列分布有多个哈希值的环形结构。
在本实施例中,具体实施时,可以先根据所确定的第一哈希值和第二哈希值构建对应的哈希结果环。具体的,可以按照哈希值的数值大小,对所述第一哈希值和所述第二哈希值进行排序,得到排序后的第一哈希值和第二哈希值。例如,可以按照从小到大的顺序排序第一哈希值和第二哈希值。再沿预设的方向,将所述排序后的第一哈希值和第二哈希值分别投射到圆环上,得到对应的哈希结果环。例如,可以沿顺时针的方向,将从小大排列的第一哈希值和第二哈希值分别依次投射到圆环上,从而得到对应的哈希结果环。需要说明的是,上述所列举的排序方式以及预设的方向只是一种示意性说明。具体的实施时,根据具体情况和处理需求,也可以按照从大到小的顺序排序,或者沿逆时针的方向在圆环上投射排序后的第一哈希值和第二哈希值等。
在本实施例中,由于第一哈希值和第二哈希值是分别根据目标对象的身份标识和目标任务的任务标识计算得到的哈希值,且分别与目标对象的身份标识和目标任务的任务标识一一对应。因此在构建哈希结果环时,不同的第一哈希值、第二哈希值的投射位置不会出现重叠。
在得到上述哈希结果环后,可以根据哈希结果环,确定出第一哈希值和第二哈希值的映射关系。具体的,可以沿预设的方向(例如沿顺时针方向),将哈希结果环上的任意两个相邻的第一哈希值,以及第一哈希值之间的第二哈希值划分为一个映射组,并将其中的第二哈希值映射到该映射组中沿预设的靠前位置处的第一哈希值,从而建立得到了该映射组中第一哈希值和第二哈希值的映射关系。按照上述方式,可以依次确定出哈希结果环上各个映射组中第一哈希值和第二哈希值的映射关系,得到多组第一哈希值和第二哈希值的映射关系。当然,需要说明的是,上述所列举的确定第一哈希值和第二哈希值的映射关系的方式,只是一种示意性说明。具体实施时,根据具体情况,也可以沿其他的预设的方向,或者采用其他的映射方式来确定出哈希结果环上各个映射组中的第一哈希值和第二哈希值的映射关系。例如,根据具体情况,还可以将逆时针方向作为预设的方向,将映射组中的第二哈希值映射到该映射组中沿预设的靠后位置处的第一哈希值等。对此,本说明书不作限定。
在本实施例中,对于某一个映射组,如果该映射组中给的两个相邻的第一哈希值之间不存在第二哈希值,可以确定该映射组不存在第一哈希值和第二哈希值的映射关系。
在本实施例中,上述根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象,具体实施时,可以根据所述第一哈希值和第二哈希值的映射关系,将第二哈希值所对应的目标任务分配给第二哈希值所映射的第一哈希值所对应的目标对象,作为分配结果。
在本实施例中,在根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象后,可以将上述分配结果作为一种预分配结果先进行存储,在接收到目标对象的任务申领请求后,再读取并根据上述预分配结果,将对应的目标任务发送给发出任务申领请求的目标对象进行处理。
在本实施例中,为了能够提高存储、读取数据的效率,也为了适应分布式的数据处理场景,具体实施时,可以将预分配结果存储在tair集群(也可以记为tair预分配缓存)中。其中,上述tair具体可以理解为一种分布式缓存服务,适用于分布式数据处理场景,支持高频访问、缓存数据。这样服务器在接收到某个目标对象的任务申领请求后,可以响应任务申领请求,通过tair集群快速地读取存储的预分配结果,根据预分配结果确定出该目标对象所对应的目标任务,进而可以将该目标任务及时发送给该目标对象进行处理。
在本实施例中,在根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象后,还可以直接根据上述分配结果,即时将多个目标任务分别发送至对应的目标对象,实现实时并行对多个目标对象同时进行任务分配。
在本实施例中,由于通过分别获取并根据申领任务的目标对象的身份标识,以及待分配的目标任务的任务标识,确定与目标对象对应的第一哈希值,以及与目标任务对应的第二哈希值;再建立并根据第一哈希值与第二哈希值之间的映射关系,将目标任务分配给对应的目标对象,从而能够高效、均衡地将多个目标任务并行分配给多个同时申领任务的目标对象进行处理,提高了任务分配效率,避免了多个目标对象同时申领任务时存在的针对待分配任务的资源竞争,解决了现有方法中无法并行地将多个目标任务同时分配给多个不同目标对象进行处理的技术问题。
在一个实施例中,所述根据所述目标对象的身份标识确定与目标对象对应的第一哈希值,具体实施时,可以包括以下内容:对所述目标对象的身份标识进行MD5计算,得到对应的MD5值;对所述MD5值进行位运算,得到对应的第一哈希值。
在本实施例中,类似的,根据所述目标任务的任务标识确定与目标任务对应的第二哈希值,具体实施时,可以包括:对所述目标任务的任务标识进行MD5计算,得到对应的MD5值;对所述MD5值进行位运算,得到对应的第一哈希值。
在一个实施例中,所述第一哈希值和第二哈希值的映射关系具体实施时,可以按照以下方式建立:按照数值大小,对所述第一哈希值和所述第二哈希值进行排序,得到排序后的第一哈希值和第二哈希值;沿预设的方向,将所述排序后的第一哈希值和第二哈希值分别投射到圆环上,得到对应的哈希结果环;沿预设的方向,将所述哈希结果环上相邻的两个第一哈希值之间的第二哈希值映射到所述相邻的两个第一哈希值中位于沿所述预设的方向靠前位置处的第一哈希值。
在本实施例中,由于第一哈希值与一个目标对象对应,第二哈希值与一个目标任务对应,通过第一哈希值和第二哈希值的映射关系,可以确定出第二哈希值所对应的目标任务对应的目标对象(即第二哈希值所映射的第一哈希值所对饮给的目标对象)。
在本实施例中,上述沿预设的方向,将所述哈希结果环上相邻的两个第一哈希值之间的第二哈希值映射到所述相邻的两个第一哈希值中位于沿所述预设的方向靠前位置处的第一哈希值,具体实施时,可以沿预设的方式,将哈希结果环上任意两个相邻的第一哈希值,以及两个相邻的第一哈希值之间的第二哈希值划分为一个映射组。再将该映射组中第二哈希值按照一定的映射规则映射到该映射组中的一个第一哈希值上。例如,可以将映射组中的第二哈希值映射到沿预设的方向靠前位置处的第一哈希值。当然,根据具体情况,也可以统一将映射组中的第二哈希值映射到沿预设的方向靠后位置处的第一哈希值等。对此,本说明书不作限定。
在本实施例中,需要说明的是,上述所列举的排序方式、映射方式只是一种示意性说明。具体实施时,根据具体情况,也可以采用其他合适的排序方式、映射方式来得到第一哈希值和第二哈希值的映射关系。对此,本说明书不作限定。
在一个实施例中,所述根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象,具体实施时,可以包括以下内容:根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务分配给所映射的第一哈希值所对应的目标对象。
在本实施例中,具体实施时,可以根据第一哈希值的第二哈希值的映射关系,确定将第二哈希值所对应的目标任务分配给第二哈希值所映射的第一哈希值对应的目标对象,从而可以确定出各个目标任务所要分配的目标对象,得到分配结果。
在本实施例中,在得到上述分配结果后,具体实施时,可以将上述分配结果作为一种预分配结果进行存储,在接收到目标对象发送的任务申领请求后,再根据上述预分配结果,获取并向该目标对象发送所分配的目标任务。也可以直接根据分配结果,即时地同时并行地向多个目标对象发送所分配的目标任务。
在一个实施例中,考虑到在哈希结果环上投射的目标对象的第一哈希值的分布有时可能会不够均衡,导致在基于哈希结果环中第一哈希值和第二哈希值的映射关系来确定目标任务所对应的目标对象时,可能会出现分配不均衡的情况。例如,可能多个目标对象中的某一个目标对象同时分配了多个目标任务,而另一个目标对象可能只分配得到了一个甚至没有目标任务。这样的分配结果显然是不合理的,会造成资源的浪费,同时也会影响目标任务总的处理时间。为了解决上述问题,本说明书实施例还提出了可以通过构建目标对象的虚拟身份标识,哈希结果环上分布的目标对象的第一哈希值进行扩充,使得哈希结果环上对应目标对象的哈希值分布更加均衡,从而使得目标任务的分配也更加均衡。
在本实施例中,在根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值后,具体实施时,所述方法还可以包括以下内容:根据所述目标对象的身份标识,构建虚拟身份标识;根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
在本实施例中,具体实施时,可以按照预设的构建规则,基于目标对象的身份标识,构建出对应同一目标对象的虚拟身份标识。其中,对应同一个目标对象的虚拟身份标识和原本的身份标识会存在差异。进而可以按照根据目标对象的身份标识计算对应目标对象的第一哈希值的方式,来根据目标对象的虚拟身份标识计算出对应该目标对象的第三哈希值。由于第一哈希值和第三哈希值都是一种基于一致性哈希算法得到的哈希值,对原始输入的数据较为敏感。因此,只要对应同一个目标对象的虚拟身份标识和原本的身份标识存在细微的差异,也会使得第一哈希值和第三哈希值在数值上存在较大的差别,反映在哈希结果环上可以发现对应同一个目标对象的第一哈希值和第三哈希值的散列位置间隔距离会相对较大,从而可以使得对应同一目标对象的哈希值(包括第一哈希值和第三哈希值)在哈希结果环上的分布相对较为分散、均衡。进而,可以将目标对象的第三哈希值作为一种扩充的目标对象的哈希值,与目标对象的第一哈希值一起参与后续映射关系的建立,再根据所建立的映射关系来更加均衡地分配目标任务。
具体的,可以将第一哈希值、第二哈希值和第三哈希值按照数值大小进行排序(例如从小到大的顺序),得到排序后的第一哈希值、第二哈希值和第三哈希值。沿预设的方向(例如顺时针方向)将排序后的第一哈希值、第二哈希值和第三哈希值分别投射到圆环上,得到对应的哈希结果环。进而可以沿预设的方向(例如沿顺时针方向),将哈希结果环上相邻的第一哈希值和/或第三哈希值之间的第二哈希值映射到两个哈希值中位于沿预设的方向靠前位置处的哈希值。
具体实施时,可以以哈希结果环上的某一个第一哈希值为一个映射组起始位置,在哈希结果环上,沿预设的方向,将与该第一哈希值的最近的一个第一哈希值或第三哈希值确定为与该第一哈希值相邻的哈希值,并将上述两个相邻的哈希值以及上述两个相邻的哈希值之间的第二哈希值划分为一个映射组,再将该映射组中的第二哈希值映射到该映射组中位于沿预设的方向的靠前位置处的哈希值。
类似的,还可以以哈希结果环上的某一个第三哈希值为一个映射组的起始位置,在哈希结果环上,沿预设的方向,将与该第三哈希值的最近的一个第一哈希值或第三哈希值确定为与该第三哈希值相邻的哈希值,并将上述两个相邻的哈希值以及上述两个相邻的哈希值之间的第二哈希值划分为一个映射组,再将该映射组中的第二哈希值映射到该映射组中位于沿预设的方向的靠前位置处的哈希值。
按照上述方式,可以将第三哈希值作为一种扩充的第一哈希值,建立得到第二哈希值与第一哈希值或第三哈希值的映射关系,进而可以根据上述映射关系,将第二哈希值所对应的目标任务分配给所映射的第一哈希值或第三哈希值所对应的目标对象,从而可以使得基于上述映射关系所确定得到的分配结果更加的均衡、合理。
在一个实施例中,所述根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象,具体实施时,还可以包括以下内容:根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务确定为预分配给所映射的第一哈希值所对应的目标对象的待分配的目标任务,得到预分配结果;接收目标对象发送的任务申领请求;响应所述任务申领请求,根据所述预分配结果,将对应的待分配的目标任务分配给所述目标对象。
在本实施例中,具体实施时,可以将基于第一哈希值和第二哈希值的映射关系所确定分配结果作为一种预分配结果进行保存,而不立即根据该分配结果进行任务分配。这样,当多个目标对象中的任意一个目标对象处于空闲等状态,想要处理目标任务向服务器发送任务申领请求时,服务器可以接收并响应该任务申领请求,读取并根据预分配结果,针对发送该任务申领请求的目标对象,确定出分配给该目标对象的目标任务,再有针对性地将所确定的目标任务发送给该目标对象进行处理。
由上可见,本说明书实施例提供的任务分配方法,由于通过分别获取并根据申领任务的目标对象的身份标识,以及待分配的目标任务的任务标识,确定与目标对象对应的第一哈希值,以及与目标任务对应的第二哈希值;再建立并根据第一哈希值与第二哈希值之间的映射关系,将目标任务分配给对应的目标对象,从而能够高效、均衡地将多个目标任务并行分配给多个同时申领任务的目标对象进行处理,提高了任务分配效率,避免了多个目标对象同时申领任务时存在的针对待分配任务的资源竞争,解决了现有方法中无法并行地将多个目标任务同时分配给多个不同目标对象进行处理的技术问题;还通过根据目标对象的身份标识,构建虚拟身份标识,再根据上述虚拟身份标识确定出除第一哈希值之外的同样与目标对象对应的第三哈希值,以对第一哈希值进行扩充,来确定目标对象与目标任务的对应关系,从而能避免在分配任务时出现数据倾斜,更加均衡地分配目标任务。
本说明书实施例还提供了另一种任务分配方法。其中,该方法具体实施时,可以包括以下内容。
S1:获取多个目标对象的任务申领请求;
S3:响应所述多个目标对象的任务申领请求,获取多个目标对象的身份标识,以及多个目标任务的任务标识;
S5:根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;
S7:根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
在本实施例中,服务器在某一个时间同时收到多个目标对象发送的任务申领请求,服务器可以按照上述方式针对发送任务申领请求的多个目标对象,以并行的方式同时为上述多个目标对象分配出对应的目标任务,再将分配给各个目标对象的目标任务以并行的方式发送给对应的目标对象进行处理,从而可以提高分配效率。
在本实施例中,具体实施时,服务器可以根据所接收到的任务申领请求的数量还确定总的待分配的目标任务的数量,进而可以从数据库中捞取对应数量的未处理的任务作为多个目标任务进行分配。例如,服务器可以从MySQL数据库资源池中捞取出与任务申领请求的数量相同数量的未处理的任务作为后续将要分配给目标对象的目标任务,进而服务器可以从上述目标任务中提取得到对应目标任务的任务标识。
在一个实施例中在根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值后,所述方法具体实施时,还可以包括以下内容:根据所述目标对象的身份标识,构建虚拟身份标识;根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
在本实施例中,具体实施时,可以按照上述方式通过构建目标对象的虚拟身份标识,再基于目标对象的虚拟身份标识确定对应该目标对象的第三哈希值对该目标对象原有的第一哈希值进行扩充。又由于基于哈希值的属性特征,对应同一目标对象的第一哈希值和第三哈希值往往差异较大,各自在哈希结果环上的分布位置的间距相对较大,较为分散,从而可以使得在一个哈希结果环上能够更加均衡地分布有多个对应同一目标对象的哈希值(即对应同一目标对象的第一哈希值和第二哈希值)。再基于上述分布更加均衡的哈希结果环来分配目标任务,可以使得所分配的目标任务也会更加的均衡、合理。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取多个目标对象的身份标识,以及多个目标任务的任务标识;根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
为了能够更加准确地完成上述指令,参阅图8所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口801、处理器802以及存储器803,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口801,具体可以用于获取多个目标对象的身份标识,以及多个目标任务的任务标识;
所述处理器802,具体可以用于根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象;
所述存储器803,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口801可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器802可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器803可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述任务分配方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取多个目标对象的身份标识,以及多个目标任务的任务标识;根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本说明书实施例还提供了一种任务分配系统,该系统包括多个客户端和服务器。其中,客户端用于向服务器发送任务申领请求,以请求获取目标任务。服务器用于接收并响应客户端发送的任务申领请求,获取客户端的身份标识,以及多个待分配的目标任务的任务标识;根据客户端的身份标识确定与客户端对应的第一哈希值;根据目标任务的任务标识确定与目标任务对应的第二哈希值;根据第一哈希值和第二哈希值的映射关系,将多个目标任务分配给多个客户端,即将对应的目标任务发送至对应的客户端。客户端还用于接收服务器发送的目标任务,并处理所接收的目标任务。
参阅图9所示,在软件层面上,本说明书实施例还提供了一种任务分配装置,该装置具体可以包括以下的结构模块:
获取模块901,具体可以用于获取多个目标对象的身份标识,以及多个目标任务的任务标识;
确定模块902,具体可以用于根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;
分配模块903,具体可以用于根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
在一个实施例中,所述确定模块902具体可以包括以下结构单元:
第一计算单元,具体可以用于对所述目标对象的身份标识进行MD5计算,得到对应的MD5值;
第二计算单元,具体可以用于对所述MD5值进行位运算,得到对应的第一哈希值。
在一个实施例中,所述装置具体还可以包括建立模块,所述建立模块具体可以包括以下结构单元:
排序单元,具体可以用于按照数值大小,对所述第一哈希值和所述第二哈希值进行排序,得到排序后的第一哈希值和第二哈希值;
投射单元,具体可以用于沿预设的方向,将所述排序后的第一哈希值和第二哈希值分别投射到圆环上,得到对应的哈希结果环;
映射单元,具体可以用于沿预设的方向,将所述哈希结果环上相邻的两个第一哈希值之间的第二哈希值映射到所述相邻的两个第一哈希值中位于沿所述预设的方向靠前位置处的第一哈希值。
在一个实施例中,所述分配模块903具体可以用于根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务分配给所映射的第一哈希值所对应的目标对象。
在一个实施例中,所述确定模块902具体还可以用于根据所述目标对象的身份标识,构建虚拟身份标识;根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
在一个实施例中,所述分配模块903具体还可以包括以下结构单元:
预分配单元,具体可以用于根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务确定为预分配给所映射的第一哈希值所对应的目标对象的待分配的目标任务,得到预分配结果;
接收单元,具体可以用于接收目标对象发送的任务申领请求;
分配单元,具体可以用于响应所述任务申领请求,根据所述预分配结果,将对应的待分配的目标任务分配给所述目标对象。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的任务分配装置,由于通过获取模块和确定模块分别获取并根据申领任务的目标对象的身份标识,以及待分配的目标任务的任务标识,确定与目标对象对应的第一哈希值,以及与目标任务对应的第二哈希值;再建立并通过分配模块根据第一哈希值与第二哈希值之间的映射关系,将目标任务分配给对应的目标对象,从而能够高效、均衡地将多个目标任务并行分配给多个同时申领任务的目标对象进行处理,提高了任务分配效率,避免了多个目标对象同时申领任务时存在的针对待分配任务的资源竞争,解决了现有方法中无法并行地将多个目标任务同时分配给多个不同目标对象进行处理的技术问题。
本说明书实施例还提供了另一种任务分配装置,具体可以包括以下结构模块:
第一获取模块,具体可以用于获取多个目标对象的任务申领请求;
第二获取模块,具体可以用于响应所述多个目标对象的任务申领请求,获取多个目标对象的身份标识,以及多个目标任务的任务标识;
确定模块,具体可以用于根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;
分配模块,具体可以用于根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
在一个实施例中,所述确定模块具体还可以用于根据所述目标对象的身份标识,构建虚拟身份标识;根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

Claims (19)

1.一种任务分配方法,包括:
获取多个目标对象的身份标识,以及多个目标任务的任务标识;
根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;
根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
2.根据权利要求1所述的方法,所述根据所述目标对象的身份标识确定与目标对象对应的第一哈希值,包括:
对所述目标对象的身份标识进行MD5计算,得到对应的MD5值;
对所述MD5值进行位运算,得到对应的第一哈希值。
3.根据权利要求1所述的方法,所述第一哈希值和第二哈希值的映射关系按照以下方式建立:
按照数值大小,对所述第一哈希值和所述第二哈希值进行排序,得到排序后的第一哈希值和第二哈希值;
沿预设的方向,将所述排序后的第一哈希值和第二哈希值分别投射到圆环上,得到对应的哈希结果环;
沿预设的方向,将所述哈希结果环上相邻的两个第一哈希值之间的第二哈希值映射到所述相邻的两个第一哈希值中位于沿所述预设的方向靠前位置处的第一哈希值。
4.根据权利要求3所述的方法,所述根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象,包括:
根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务分配给所映射的第一哈希值所对应的目标对象。
5.根据权利要求1所述的方法,在根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值后,所述方法还包括:
根据所述目标对象的身份标识,构建虚拟身份标识;
根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
6.根据权利要求1所述的方法,所述根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象,还包括:
根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务确定为预分配给所映射的第一哈希值所对应的目标对象的待分配的目标任务,得到预分配结果;
接收目标对象发送的任务申领请求;
响应所述任务申领请求,根据所述预分配结果,将对应的待分配的目标任务分配给所述目标对象。
7.一种任务分配方法,包括:
获取多个目标对象的任务申领请求;
响应所述多个目标对象的任务申领请求,获取多个目标对象的身份标识,以及多个目标任务的任务标识;
根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;
根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
8.根据权利要求7所述的方法,在根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值后,所述方法还包括:
根据所述目标对象的身份标识,构建虚拟身份标识;
根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
9.一种任务分配装置,包括:
获取模块,用于获取多个目标对象的身份标识,以及多个目标任务的任务标识;
确定模块,用于根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;
分配模块,用于根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
10.根据权利要求9所述的装置,所述确定模块包括:
第一计算单元,用于对所述目标对象的身份标识进行MD5计算,得到对应的MD5值;
第二计算单元,用于对所述MD5值进行位运算,得到对应的第一哈希值。
11.根据权利要求9所述的装置,所述装置还包括建立模块,所述建立模块具体包括:
排序单元,用于按照数值大小,对所述第一哈希值和所述第二哈希值进行排序,得到排序后的第一哈希值和第二哈希值;
投射单元,用于沿预设的方向,将所述排序后的第一哈希值和第二哈希值分别投射到圆环上,得到对应的哈希结果环;
映射单元,用于沿预设的方向,将所述哈希结果环上相邻的两个第一哈希值之间的第二哈希值映射到所述相邻的两个第一哈希值中位于沿所述预设的方向靠前位置处的第一哈希值。
12.根据权利要求11所述的装置,所述分配模块具体用于根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务分配给所映射的第一哈希值所对应的目标对象。
13.根据权利要求9所述的装置,所述确定模块还用于根据所述目标对象的身份标识,构建虚拟身份标识;根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
14.根据权利要求9所述的装置,所述分配模块还包括:
预分配单元,用于根据所述第一哈希值和第二哈希值的映射关系,将所述第二哈希值所对应的目标任务确定为预分配给所映射的第一哈希值所对应的目标对象的待分配的目标任务,得到预分配结果;
接收单元,用于接收目标对象发送的任务申领请求;
分配单元,用于响应所述任务申领请求,根据所述预分配结果,将对应的待分配的目标任务分配给所述目标对象。
15.一种任务分配装置,包括:
第一获取模块,用于获取多个目标对象的任务申领请求;
第二获取模块,用于响应所述多个目标对象的任务申领请求,获取多个目标对象的身份标识,以及多个目标任务的任务标识;
确定模块,用于根据所述目标对象的身份标识确定与目标对象对应的第一哈希值;根据所述目标任务的任务标识确定与目标任务对应的第二哈希值;
分配模块,用于根据第一哈希值和第二哈希值的映射关系,将所述多个目标任务分配给多个目标对象。
16.根据权利要求15所述的装置,所述确定模块还用于根据所述目标对象的身份标识,构建虚拟身份标识;根据所述虚拟身份标识确定与目标对象对应的第三哈希值。
17.一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至6中任一项所述方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至6中任一项所述方法的步骤。
19.一种任务分配系统,包括多个客户端和服务器,其中,所述服务器用于实现权利要求1至6中任一项所述方法的步骤。
CN201910623218.5A 2019-07-11 2019-07-11 任务分配方法、装置和系统 Active CN110457128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910623218.5A CN110457128B (zh) 2019-07-11 2019-07-11 任务分配方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910623218.5A CN110457128B (zh) 2019-07-11 2019-07-11 任务分配方法、装置和系统

Publications (2)

Publication Number Publication Date
CN110457128A true CN110457128A (zh) 2019-11-15
CN110457128B CN110457128B (zh) 2023-12-22

Family

ID=68482584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910623218.5A Active CN110457128B (zh) 2019-07-11 2019-07-11 任务分配方法、装置和系统

Country Status (1)

Country Link
CN (1) CN110457128B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176830A (zh) * 2019-12-03 2020-05-19 支付宝实验室(新加坡)有限公司 信息流的分配方法、装置及服务器系统
CN112214312A (zh) * 2020-09-17 2021-01-12 深圳大学 一种资源分配系统、方法、终端和存储介质
CN113064720A (zh) * 2021-03-12 2021-07-02 北京达佳互联信息技术有限公司 对象分配方法、装置、服务器及存储介质
CN113448699A (zh) * 2020-12-30 2021-09-28 北京新氧科技有限公司 一种分布式定时任务处理系统、方法及相关装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214794B1 (ko) * 2012-03-23 2012-12-24 주식회사 윈스테크넷 해쉬 알고리즘 및 동적 커넥션 할당을 이용한 트래픽 분산 방법 및 분산 시스템
JP2013178677A (ja) * 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、ディスパッチャおよび分散処理管理装置
JP2013210698A (ja) * 2012-03-30 2013-10-10 Hitachi Solutions Ltd ファイル検索システム及びプログラム
JP2014154087A (ja) * 2013-02-13 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> データ均等分散配置方法
CN106250226A (zh) * 2016-08-02 2016-12-21 福建华渔未来教育科技有限公司 基于一致性哈希算法的任务调度机制及系统
CN107749887A (zh) * 2017-10-25 2018-03-02 暴风集团股份有限公司 一种cdn资源分配、定位方法和装置及cdn系统
CN107797865A (zh) * 2017-10-20 2018-03-13 华为软件技术有限公司 用户任务处理方法及应用服务器
CN108132830A (zh) * 2016-12-01 2018-06-08 北京金山云网络技术有限公司 一种任务调度方法、装置及系统
CN108769111A (zh) * 2018-04-17 2018-11-06 平安科技(深圳)有限公司 一种服务器连接方法、计算机可读存储介质及终端设备
CN109040232A (zh) * 2018-08-01 2018-12-18 广州视源电子科技股份有限公司 一种视频会议的负载均衡方法、装置、设备及其存储介质
CN109271391A (zh) * 2018-09-29 2019-01-25 武汉极意网络科技有限公司 数据存储方法、服务器、存储介质及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013178677A (ja) * 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、ディスパッチャおよび分散処理管理装置
KR101214794B1 (ko) * 2012-03-23 2012-12-24 주식회사 윈스테크넷 해쉬 알고리즘 및 동적 커넥션 할당을 이용한 트래픽 분산 방법 및 분산 시스템
JP2013210698A (ja) * 2012-03-30 2013-10-10 Hitachi Solutions Ltd ファイル検索システム及びプログラム
JP2014154087A (ja) * 2013-02-13 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> データ均等分散配置方法
CN106250226A (zh) * 2016-08-02 2016-12-21 福建华渔未来教育科技有限公司 基于一致性哈希算法的任务调度机制及系统
CN108132830A (zh) * 2016-12-01 2018-06-08 北京金山云网络技术有限公司 一种任务调度方法、装置及系统
CN107797865A (zh) * 2017-10-20 2018-03-13 华为软件技术有限公司 用户任务处理方法及应用服务器
CN107749887A (zh) * 2017-10-25 2018-03-02 暴风集团股份有限公司 一种cdn资源分配、定位方法和装置及cdn系统
CN108769111A (zh) * 2018-04-17 2018-11-06 平安科技(深圳)有限公司 一种服务器连接方法、计算机可读存储介质及终端设备
CN109040232A (zh) * 2018-08-01 2018-12-18 广州视源电子科技股份有限公司 一种视频会议的负载均衡方法、装置、设备及其存储介质
CN109271391A (zh) * 2018-09-29 2019-01-25 武汉极意网络科技有限公司 数据存储方法、服务器、存储介质及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SAEED KARGAR等: ""Fractal: An advanced multidimensional range query lookup protocol on nested rings for distributed systems"", 《JOURNAL OF NETWORK AND COMPUTER APPLICATIONS》, vol. 87, pages 147 - 168, XP029988225, DOI: 10.1016/j.jnca.2017.03.021 *
刘向东;刘泱;: "基于压缩感知的图像哈希算法", 数字通信世界, no. 10 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176830A (zh) * 2019-12-03 2020-05-19 支付宝实验室(新加坡)有限公司 信息流的分配方法、装置及服务器系统
CN111176830B (zh) * 2019-12-03 2024-04-26 先进新星技术(新加坡)控股有限公司 信息流的分配方法、装置及服务器系统
CN112214312A (zh) * 2020-09-17 2021-01-12 深圳大学 一种资源分配系统、方法、终端和存储介质
CN112214312B (zh) * 2020-09-17 2024-03-26 深圳大学 一种资源分配系统、方法、终端和存储介质
CN113448699A (zh) * 2020-12-30 2021-09-28 北京新氧科技有限公司 一种分布式定时任务处理系统、方法及相关装置
CN113064720A (zh) * 2021-03-12 2021-07-02 北京达佳互联信息技术有限公司 对象分配方法、装置、服务器及存储介质
CN113064720B (zh) * 2021-03-12 2024-04-16 北京达佳互联信息技术有限公司 对象分配方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN110457128B (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
CN110457128A (zh) 任务分配方法、装置和系统
CN105224606B (zh) 一种用户标识的处理方法及装置
CN109902901A (zh) 任务分配方法、装置、存储介质和计算机设备
KR20180077267A (ko) 이모티콘 추천 방법 및 장치
CN107453900B (zh) 一种云解析参数设定管理系统及实现参数设定的方法
CN110134516A (zh) 金融数据处理方法、装置、设备及计算机可读存储介质
CN109741086A (zh) 一种计算模型的生成方法及设备
CN110830604B (zh) Dns调度方法、装置
CN111158613A (zh) 基于访问热度的数据块存储方法、装置及存储设备
CN103699534B (zh) 系统目录中数据对象的显示方法及装置
CN108563697A (zh) 一种数据处理方法、装置和存储介质
CN106131244A (zh) 一种报文传送方法及装置
CN110225039A (zh) 权限模型获取、鉴权方法、网关、服务器以及存储介质
CN113315672B (zh) 流量分配方法及装置、电子设备及计算机可读存储介质
CN109086289A (zh) 一种媒体数据处理方法、客户端、介质和设备
CN109075987A (zh) 优化数字组件分析系统
CN109241511A (zh) 一种电子报告的生成方法及设备
CN107291746A (zh) 一种存储和读取数据的方法及设备
CN105930354A (zh) 存储模型转换方法和装置
CN105991571A (zh) 一种信息处理方法及装置
CN111291045A (zh) 服务隔离数据传输方法、装置、计算机设备及存储介质
CN116842012A (zh) 一种Redis集群的分片存储方法、装置、设备及存储介质
CN108366136A (zh) 一种域名的解析方法及装置
JP2010072876A (ja) ルール作成プログラム、ルール作成方法及びルール作成装置
CN109992614A (zh) 数据获取方法、装置和服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Georgetown Hospital Road, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant