CN110471702B - 任务处理方法、装置、存储介质及计算机设备 - Google Patents

任务处理方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN110471702B
CN110471702B CN201910567046.4A CN201910567046A CN110471702B CN 110471702 B CN110471702 B CN 110471702B CN 201910567046 A CN201910567046 A CN 201910567046A CN 110471702 B CN110471702 B CN 110471702B
Authority
CN
China
Prior art keywords
hash value
task queue
nodes
node
execution
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.)
Active
Application number
CN201910567046.4A
Other languages
English (en)
Other versions
CN110471702A (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.)
Koubei Shanghai Information Technology Co Ltd
Original Assignee
Koubei Shanghai Information Technology Co 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 Koubei Shanghai Information Technology Co Ltd filed Critical Koubei Shanghai Information Technology Co Ltd
Priority to CN201910567046.4A priority Critical patent/CN110471702B/zh
Publication of CN110471702A publication Critical patent/CN110471702A/zh
Application granted granted Critical
Publication of CN110471702B publication Critical patent/CN110471702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种任务处理方法、装置、存储介质及计算机设备,涉及信息技术领域,主要目的在于能够克服单串行任务吞吐率有限的缺陷,从而能够提升任务的执行速度,且能够保证任务执行的正确性,所述方法包括:按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点;利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。本发明适用于任务的处理。

Description

任务处理方法、装置、存储介质及计算机设备
技术领域
本发明涉及信息技术领域,特别是涉及一种任务处理方法、装置、存储介质及计算机设备。
背景技术
随着信息技术的而不断发展,各种业务系统随之出现,业务系统在短时间内可能会触发大量事件,生成大量任务由任务系统进行处理。
目前,通常采用串行任务模式,或者采用并行任务模式,对任务进行处理。具体地,在某些任务场景中,任务处理结果与任务的处理顺序相关,任务的处理顺序错乱,则会造成任务处理结果的异常。如一组数据删除、数据新增操作,若任务处理方按照数据新增、数据删除进行执行,则最终结果是数据被删除,与预期不符。因此,采用串行任务模式,对任务进行处理。然而,串行任务模式的缺点为:下一个任务必须在前一个任务执行完成之后才能开始执行,系统吞吐速率有限,当业务量较大时容易造成任务积压,影响任务的时效性。若采用并行任务模式,虽然提高了系统吞吐率,但又无法保证业务的正确性。
发明内容
有鉴于此,本发明提供一种任务处理方法、装置、存储介质及计算机设备,主要目的在于能够实现通过串并结合的任务模式,执行待处理任务,能够克服单串行任务吞吐率有限的缺陷,从而能够提升任务的执行速度,且能够保证任务执行的正确性。
依据本发明第一方面,提供了一种任务处理方法,包括:
按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;
基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点;
利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
可选地,所述按照预设打散算法,将多个待处理任务打散分组到预设串并结合的任务队列节点中,包括:
获取任务队列节点数量和所述多个待处理任务的属性信息;
基于所述任务队列节点数量和所述属性信息,将所述多个待处理任务打散分组;
将打散分组后的任务对应放入到预设串并结合的各个任务队列节点中。
可选地,所述基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点,包括:
基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自覆盖的哈希值范围;
基于所述哈希值范围,将已有的各个执行节点对应映射给所述各个任务队列节点。
可选地,所述基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自覆盖的哈希值范围,包括:
获取所述各个任务队列节点各自对应的初始最小哈希值和初始最大哈希值;
基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自对应的哈希值;
若所述各个任务队列节点各自对应的哈希值大于所述初始最大哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最大哈希值;
若所述各个任务队列节点各自对应的哈希值小于所述初始最小哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最小哈希值;
将所述最小哈希值和所述最大哈希值所形成的哈希值范围,确定为所述各个任务队列节点各自覆盖的哈希值范围。
可选地,所述基于所述哈希值范围,将已有的各个执行节点对应映射给所述各个任务队列节点,包括:
基于所述哈希值范围,确定所述各个任务队列节点的最大哈希值、最小哈希值、以及所述最大哈希值与所述最小哈希值的平均值;
根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点。
可选地,所述根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点,包括:
选取最小哈希值小于所述平均值,且最大哈希值大于所述各个任务队列节点的最大哈希值的执行节点,对应映射给所述各个任务队列节点。
可选地,所述根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点,包括:
选取最大哈希值大于所述平均值,且最小哈希值小于所述各个任务队列节点的最小哈希值的执行节点,对应映射给所述各个任务队列节点。
可选地,所述基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点,包括:
获取任务队列节点数量和已有的执行节点数量;
若所述执行节点数量小于所述任务队列节点数量,则基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点。
进一步地,所述获取任务队列节点数量和已有的执行节点数量之后,所述方法还包括:
若所述执行节点数量大于或者等于所述任务队列节点数量,则选取与所述任务队列节点数量相同的执行节点,一一映射给所述各个任务队列节点。
依据本发明第二方面,提供了一种任务处理装置,包括:
分组单元,用于按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;
确定单元,用于基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点;
执行单元,用于利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
可选地,所述分组单元,具体用于获取任务队列节点数量和所述多个待处理任务的属性信息;基于所述任务队列节点数量和所述属性信息,将所述多个待处理任务打散分组;并将打散分组后的任务对应放入到预设串并结合的各个任务队列节点中。
可选地,所述确定单元包括:
计算模块,用于基于打散分组后的任务,计算所述各个任务队列节点各自覆盖的哈希值范围;
映射模块,用于基于所述哈希值范围,将已有的各个执行节点对应映射给所述各个任务队列节点。
所述计算模块,具有用于获取所述各个任务队列节点各自对应的初始最小哈希值和初始最大哈希值;基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自对应的哈希值;若所述各个任务队列节点各自对应的哈希值大于所述初始最大哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最大哈希值;若所述各个任务队列节点各自对应的哈希值小于所述初始最小哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最小哈希值;将所述最小哈希值和所述最大哈希值所形成的哈希值范围,确定为所述各个任务队列节点各自覆盖的哈希值范围。
可选地,所述映射模块包括:
计算子模块,用于基于所述哈希值范围,确定所述各个任务队列节点的最大哈希值、最小哈希值、以及所述最大哈希值与所述最小哈希值的平均值;
映射子模块,用于根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点。
可选地,所述映射模块,具体用于选取最小哈希值小于所述平均值,且最大哈希值大于所述各个任务队列节点的最大哈希值的执行节点,对应映射给所述各个任务队列节点。
可选地,所述映射模块,具体用于选取最大哈希值大于所述平均值,且最小哈希值小于所述各个任务队列节点的最小哈希值的执行节点,对应映射给所述各个任务队列节点。
可选地,所述映射模块,具体用于获取任务队列节点数量和已有的执行节点数量;若所述执行节点数量小于所述任务队列节点数量,则基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点。
进一步地,所述映射模块,还具体用于若所述执行节点数量大于或者等于所述任务队列节点数量,则选取与所述任务队列节点数量相同的执行节点,一一映射给所述各个任务队列节点。
依据本发明第三方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述执行指令使处理器执行以下步骤:
按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;
基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点;
利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
依据本发明第四方面,提供了一种计算机设备,包括处理器、存储器、通信接口和通信总线所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下步骤:
按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;
基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点;
利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
本发明提供一种任务处理方法、装置、存储介质及计算机设备,与目前采用串行任务模式,或者采用并行任务模式,对任务进行处理相比,发明能够按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;并能够基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点。与此同时,能够利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务,从而能够实现通过串并结合的任务模式,执行待处理任务,能够克服单串行任务吞吐率有限的缺陷,从而能够提升任务的执行速度,且能够保证任务执行的正确性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种任务处理方法的流程示意图;
图2示出了本发明实施例提供的一种任务打散到串并结合的任务队列节点的程示意图;
图3示出了本发明实施例提供的一种任务队列节点与执行节点映射的示意图;
图4示出了本发明实施例提供的另一种任务队列节点与执行节点映射的示意图;
图5示出了本发明实施例提供的又一种任务队列节点与执行节点映射的示意图;
图6示出了本发明实施例提供的一种任务处理装置的结构示意图;
图7示出了本发明实施例提供的另一种任务处理装置的结构示意图;
图8示出了本发明实施例提供的一种计算机设备的实体结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种任务处理方法,如图1所示,所述方法包括:
101、按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中。
其中,所述打散算法可以为根据待处理任务对应的属性信息和任务队列节点数量对待处理任务进行打散的算法。所述属性信息可以包括业务标识信息、业务对应处理方的标识信息,业务处理顺序信息和业务类别信息等。所述任务队列节点数量可以为根据实际业务系统的需求和性能预先设定的。所述串并结合的各个任务队列节点可以为串并结合任务队列所对应的各个节点,所述串并结合任务队列可以为多个并列执行的串行任务队列。需要说明的是,待处理任务的打散得到的分组具体以对应的属性信息而定,不同的属性信息,以及不同的任务队列节点数量,分组后的结果可以不同。
例如,若待处理任务有7个,包括:商品A修改,商品B修改,商品A在门店1上架,商品B再修改,商品B在门店1上架,商品A在门店1下架,商品A再修改,串行任务队列有4个,业务类别包括:修改、上/下架,根据业务类别对待处理任务进行第一次打散,可以得到2个分组:“商品A修改、商品B修改、商品B再修改、商品A再修改”和“商品A在门店1上架,商品B在门店1上架,商品A在门店1下架”,根据业务标识信息对待处理任务进行第二次打散,可以得到4个分组:“商品A修改、商品A再修改”,“商品B修改、商品B再修改”,“商品A在门店1上架,商品A在门店1下架”,“商品B在门店1上架”。然后可以将被分组的任务按照顺序分别放入到4个串行任务队列中。
又例如,待处理任务有6个,包括:物品A的增加、物品A的删除、物品C的增加、物品C的删除、物品B的修改、物品D的修改。任务队列节点数量大于4,对于上述6个任务,打散分组后的关系,不考虑不同分组进入同一个队列的情况,其中一种可能的组合为:
队列1:物品A的增加,物品A的删除
队列2:物品C的增加,物品C的删除
队列3:物品B的修改
队列4:物品D的修改
队列其它:(空),也可以如图2所示,待处理任务打算分组的示意图。
102、基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点。
其中,所述任务的哈希值可以为根据任务的关键字创建的数字“指纹”,具体可以一个从0到2^32-1的数字,可以看作环状结构。与所述各个任务队列节点映射的执行节点可以为哈希值范围包含其哈希值范围的节点。所述各个任务队列节点的哈希值范围可以为根据放入其内任务的哈希值确定的。
需要说明的是,所述各个任务队列节点的哈希值范围在设定时,符合哈希值范围彼此不交叉,但是可以连续的原则,如第t个任务队列节点的哈希值为Hash(H,t),其对应的哈希值符合如下条件:
Max(Hash(T,t-1))+1≤Min(Hash(T,t))<Max(Hash(T,t))≤Min(Hash(T,t+1))-1
即第t个任务队列节点的最大哈希值小于或等于第t+1个任务队列节点的最小哈希值-1;第t个任务队列节点的最小哈希值大于或者等于第t-1个任务队列节点的最大哈希范围+1。
此外,系统中的执行节点符合哈希值范围彼此不交叉,但是一定连续的原则,如第e个任务队列节点的哈希值为Hash(E,e),e=1,2,3,…m,其对应的哈希值符合如下条件:
Max(Hash(E,e-1))+1=Min(Hash(E,e))<Max(Hash(E,e))=Min(Hash(E,e+1))-1;
Max(Hash(E,e))-Min(Hash(E,e))≈(2^32)/m
即第e个执行节点的最小哈希值等于第e-1个执行节点的最大哈希值+1;第e个执行节点的最大哈希值等于第e+1个执行节点的最小哈希值-1。
对于本发明实施例,基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点,不仅能够实现任务执行和任务打散分组的解耦,提升任务的执行速度保证,而且能够在不影响任务处理的前提下,动态增减系统内的执行节点,在任务较多的情况下,保证有执行节点处理任务,保证任务的顺利执行。
103、利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
对于本发明实施例,通过与所述各个任务队列节点映射的执行节点,适配分布式系统的特性,保证任务稳定高速的执行,提升任务的执行速度。
本发明实施例提供的一种任务处理方法,与目前采用串行任务模式,或者采用并行任务模式,对任务进行处理相比,发明能够按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;并能够基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点。与此同时,能够利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务,从而能够实现通过串并结合的任务模式,执行待处理任务,能够克服单串行任务吞吐率有限的缺陷,从而能够提升任务的执行速度,且能够保证任务执行的正确性。
进一步的,为了更好的说明上述任务处理方法的过程,作为对上述实施例的细化和扩展,本发明实施例提供了几种可选实施例,但不限于此,具体如下所示:
本发明的一个可选实施例,所述步骤101具体可以包括:获取任务队列节点数量和所述多个待处理任务的属性信息;基于所述任务队列节点数量和所述属性信息,将所述多个待处理任务打散分组;将打散分组后的任务对应放入到预设串并结合的各个任务队列节点中。所述属性信息可以包括业务标识信息、业务对应处理方的标识信息,业务处理顺序信息和业务类别信息等。业务类别可以为增加、删除、上架、下架等。
本发明的另一个可选实施例,所述步骤102具体可以包括:基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自覆盖的哈希值范围;基于所述哈希值范围,将已有的各个执行节点对应映射给所述各个任务队列节点。
在具体应用场景中,计算所述哈希值范围的步骤具体可以包括:获取所述各个任务队列节点各自对应的初始最小哈希值和初始最大哈希值;基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自对应的哈希值;若所述各个任务队列节点各自对应的哈希值大于所述初始最大哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最大哈希值;若所述各个任务队列节点各自对应的哈希值小于所述初始最小哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最小哈希值;将所述最小哈希值和所述最大哈希值所形成的哈希值范围,确定为所述各个任务队列节点各自覆盖的哈希值范围。
例如,若第t个任务队列节点的哈希值为Hash(H,t),t=1,2,3,…,i;最小哈希值为Min(Hash(T,t)),最大哈希值为Max(Hash(T,t)),放入任务队列节点t的任务哈希值为0≤H≤2^32-1,则任务队列t节点的哈希值为:
Hash(H,t)=(H/2^32)*(2^32*t/i)+2^32*(t-1)/i=(Ht+2^32*(t-1))/i;
如果Hash(H,t)>Max(Hash(T,t)),则更新Max(Hash(T,t))为Hash(H,t);
如果Hash(H,t)<Min(Hash(T,t)),则更新Min(Hash(T,t))为Hash(H,t)
否则,维持Max(Hash(T,t)),Min(Hash(T,t))不变;
Min(Hash(T,t))、Max(Hash(T,t))的初始值为(2^32*t/i+2^32*(t-1)/i)/2=2^31*(2t-1)/i。
本发明的又一个可选实施例,所述将已有的各个执行节点对应映射给所述各个任务队列节点的,步骤具体可以包括:基于所述哈希值范围,确定所述各个任务队列节点的最大哈希值、最小哈希值、以及所述最大哈希值与所述最小哈希值的平均值;根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点。
在具体应用场景中,可以选取最小哈希值小于所述平均值,且最大哈希值大于所述各个任务队列节点的最大哈希值的执行节点,对应映射给所述各个任务队列节点。也可以选取最大哈希值大于所述平均值,且最小哈希值小于所述各个任务队列节点的最小哈希值的执行节点,对应映射给所述各个任务队列节点。
例如,任务队列节点t的最小值、最大值分别为Min(Hash(T,t))、Max(Hash(T,t));执行节点e的最小值、最大值分别为Min(Hash(E,e))、Max(Hash(E,e));通过上述步骤映射处理后的任务队列节点和执行节点满足如下条件:
Min(Hash(E,e))<(Min(Hash(T,t))+Max(Hash(T,t)))/2&&Max(Hash(E,e))>Max(Hash(T,t));
或者,Max(Hash(E,e))>(Min(Hash(T,t))+Max(Hash(T,t)))/2&&Min(Hash(E,e))<Min(Hash(T,t))。
即执行节点e包含任务队列节点50%以上的哈希值范围,则将任务队列节点t映射给执行节点e,放入到任务队列节点t的任务,由且只能由执行节点e执行。如图3、4所示,基于哈希值范围,任务队列节点T(1)可以映射给执行节点E(1),由执行节点E(1)执行任务队列节点T(1)内的TaskA1、TaskA2;任务队列节点T(2)可以映射给执行节点E(2),由执行节点E(2)执行任务队列节点T(2)内的TaskB等。如图5,当任务队列节点数量为4执行节点数量为3时,任务队列节点T(1)的哈希范围100%映射到了执行节点E(1)中;任务队列节点E(2),E(3)的哈希范围66%映射到了执行节点E(2)中;任务队列节点4的哈希范围100%映射到了执行节点4中。
本发明的再一个可选实施例,所述将已有的各个执行节点对应映射给所述各个任务队列节点的,步骤具体可以包括:获取任务队列节点数量和已有的执行节点数量;若所述执行节点数量小于所述任务队列节点数量,则基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点;若所述执行节点数量大于或者等于所述任务队列节点数量,则选取与所述任务队列节点数量相同的执行节点,一一映射给所述各个任务队列节点。例如,执行节点的数量定义为m,任务队列节点的数量定义为i。若m≥i,则选取执行节点的前i个执行节点,一一映射给对应的任务队列节点。若m<i,则选取包含任务队列节点的哈希值范围的执行节点,映射给对应的任务队列节点。
进一步地,作为图1的具体实现,本发明实施例提供了一种任务处理装置,如图6所示,所述装置包括:分组单元21、确定单元22和执行单元23。
所述分组单元21,可以用于按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中。
所述确定单元22,可以用于基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点。
所述执行单元23,可以用于利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
所述分组单元21,具体可以用于获取任务队列节点数量和所述多个待处理任务的属性信息;基于所述任务队列节点数量和所述属性信息,将所述多个待处理任务打散分组;并将打散分组后的任务对应放入到预设串并结合的各个任务队列节点中。
对于本发明实施例,所述确定单元22可以包括:计算模块221和映射模块222,如图7所示。
所述计算模块221,可以用于基于打散分组后的任务,计算所述各个任务队列节点各自覆盖的哈希值范围;
所述映射模块222,可以用于基于所述哈希值范围,将已有的各个执行节点对应映射给所述各个任务队列节点。
所述计算模块221,具体可以用于获取所述各个任务队列节点各自对应的初始最小哈希值和初始最大哈希值;基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自对应的哈希值;若所述各个任务队列节点各自对应的哈希值大于所述初始最大哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最大哈希值;若所述各个任务队列节点各自对应的哈希值小于所述初始最小哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最小哈希值;将所述最小哈希值和所述最大哈希值所形成的哈希值范围,确定为所述各个任务队列节点各自覆盖的哈希值范围。
对于本发明实施例,所述映射模块222可以包括:
计算子模块,可以用于基于所述哈希值范围,确定所述各个任务队列节点的最大哈希值、最小哈希值、以及所述最大哈希值与所述最小哈希值的平均值。
映射子模块,可以用于根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点。
所述映射模块222,具体可以用于选取最小哈希值小于所述平均值,且最大哈希值大于所述各个任务队列节点的最大哈希值的执行节点,对应映射给所述各个任务队列节点。
所述映射模块222,具体还可以用于选取最大哈希值大于所述平均值,且最小哈希值小于所述各个任务队列节点的最小哈希值的执行节点,对应映射给所述各个任务队列节点。
所述映射模块222,具体还可以用于获取任务队列节点数量和已有的执行节点数量;若所述执行节点数量小于所述任务队列节点数量,则基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点。
所述映射模块222,还具体还可以用于若所述执行节点数量大于或者等于所述任务队列节点数量,则选取与所述任务队列节点数量相同的执行节点,一一映射给所述各个任务队列节点。
需要说明的是,本发明实施例提供的一种任务处理装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本发明实施例还提供了一种提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述执行指令使处理器执行以下步骤:按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点;利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
基于上述如图1所示方法和如图6所示装置的实施例,本发明实施例还提供了一种计算机设备,如图8所示,处理器(processor)31、通信接口(Communications Interface)32、存储器(memory)33、以及通信总线34。其中:处理器31、通信接口32、以及存储器33通过通信总线34完成相互间的通信。通信接口34,用于与其它设备比如客户端或其它服务器等的网元通信。处理器31,用于执行程序,具体可以执行上述数据的转换方法实施例中的相关步骤。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。处理器31可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific IntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
终端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。存储器33,用于存放程序。存储器33可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序具体可以用于使得处理器41执行以下操作:按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点;利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
通过本发明的技术方案,能够按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;并能够基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点。与此同时,能够利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务,从而能够实现通过串并结合的任务模式,执行待处理任务,能够克服单串行任务吞吐率有限的缺陷,从而能够提升任务的执行速度,且能够保证任务执行的正确性。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的任务处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (16)

1.一种任务处理方法,其特征在于,包括:
按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;
基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自覆盖的哈希值范围,基于所述哈希值范围,确定所述各个任务队列节点的最大哈希值、最小哈希值、以及所述最大哈希值与所述最小哈希值的平均值,根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点;
利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
2.根据权利要求1所述的方法,其特征在于,所述按照预设打散算法,将多个待处理任务打散分组到预设串并结合的任务队列节点中,包括:
获取任务队列节点数量和所述多个待处理任务的属性信息;
基于所述任务队列节点数量和所述属性信息,将所述多个待处理任务打散分组;
将打散分组后的任务对应放入到预设串并结合的各个任务队列节点中。
3.根据权利要求1所述的方法,其特征在于,所述基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自覆盖的哈希值范围,包括:
获取所述各个任务队列节点各自对应的初始最小哈希值和初始最大哈希值;
基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自对应的哈希值;
若所述各个任务队列节点各自对应的哈希值大于所述初始最大哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最大哈希值;
若所述各个任务队列节点各自对应的哈希值小于所述初始最小哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最小哈希值;
将所述最小哈希值和所述最大哈希值所形成的哈希值范围,确定为所述各个任务队列节点各自覆盖的哈希值范围。
4.根据权利要求1所述的方法,其特征在于,所述根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点,包括:
选取最小哈希值小于所述平均值,且最大哈希值大于所述各个任务队列节点的最大哈希值的执行节点,对应映射给所述各个任务队列节点。
5.根据权利要求1所述的方法,其特征在于,所述根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点,包括:
选取最大哈希值大于所述平均值,且最小哈希值小于所述各个任务队列节点的最小哈希值的执行节点,对应映射给所述各个任务队列节点。
6.根据权利要求1所述的方法,其特征在于,所述基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点,包括:
获取任务队列节点数量和已有的执行节点数量;
若所述执行节点数量小于所述任务队列节点数量,则基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点。
7.根据权利要求6所述的方法,其特征在于,所述获取任务队列节点数量和已有的执行节点数量之后,所述方法还包括:
若所述执行节点数量大于或者等于所述任务队列节点数量,则选取与所述任务队列节点数量相同的执行节点,一一映射给所述各个任务队列节点。
8.一种任务处理装置,其特征在于,包括:
分组单元,用于按照预设打散算法,将多个待处理任务打散分组到预设串并结合的各个任务队列节点中;
确定单元,用于基于打散分组后的任务的哈希值,确定与所述各个任务队列节点映射的执行节点,其中,与所述各个任务队列节点映射的执行节点为哈希值范围包含其哈希值范围的节点,各个任务队列节点的哈希值范围为根据放入其内任务的哈希值确定的,并且所述哈希值范围在设定时,符合哈希值范围彼此不交叉但连续的原则包括:计算模块,用于基于打散分组后的任务,计算所述各个任务队列节点各自覆盖的哈希值范围;映射模块,用于基于所述哈希值范围,将已有的各个执行节点对应映射给所述各个任务队列节点;所述映射模块包括:计算子模块,用于基于所述哈希值范围,确定所述各个任务队列节点的最大哈希值、最小哈希值、以及所述最大哈希值与所述最小哈希值的平均值;映射子模块,用于根据所述最大哈希值、所述最小哈希值和所述平均值,将已有的各个执行节点对应映射给所述各个任务队列节点;
执行单元,用于利用与所述各个任务队列节点映射的执行节点,执行所述打散分组后的任务。
9.根据权利要求8所述的装置,其特征在于,
所述分组单元,具体用于获取任务队列节点数量和所述多个待处理任务的属性信息;基于所述任务队列节点数量和所述属性信息,将所述多个待处理任务打散分组;并将打散分组后的任务对应放入到预设串并结合的各个任务队列节点中。
10.根据权利要求8所述的装置,其特征在于,
所述计算模块,具体用于获取所述各个任务队列节点各自对应的初始最小哈希值和初始最大哈希值;基于打散分组后的任务的哈希值,计算所述各个任务队列节点各自对应的哈希值;若所述各个任务队列节点各自对应的哈希值大于所述初始最大哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最大哈希值;若所述各个任务队列节点各自对应的哈希值小于所述初始最小哈希值,则将所述各个任务队列节点各自对应的哈希值,更新为所述各个任务队列节点各自对应的最小哈希值;将所述最小哈希值和所述最大哈希值所形成的哈希值范围,确定为所述各个任务队列节点各自覆盖的哈希值范围。
11.根据权利要求8所述的装置,其特征在于,
所述映射模块,具体用于选取最小哈希值小于所述平均值,且最大哈希值大于所述各个任务队列节点的最大哈希值的执行节点,对应映射给所述各个任务队列节点。
12.根据权利要求8所述的装置,其特征在于,
所述映射模块,具体用于选取最大哈希值大于所述平均值,且最小哈希值小于所述各个任务队列节点的最小哈希值的执行节点,对应映射给所述各个任务队列节点。
13.根据权利要求8所述的装置,其特征在于,
所述映射模块,具体用于获取任务队列节点数量和已有的执行节点数量;若所述执行节点数量小于所述任务队列节点数量,则基于所述哈希值范围,将所述已有的执行节点对应映射给所述各个任务队列节点。
14.根据权利要求13所述的装置,其特征在于,
所述映射模块,还具体用于若所述执行节点数量大于或者等于所述任务队列节点数量,则选取与所述任务队列节点数量相同的执行节点,一一映射给所述各个任务队列节点。
15.一种存储介质,其上存储有计算机程序,所述存储介质中存储有至少一可执行指令,所述执行指令使处理器执行如权利要求1-7中任一项所述的任务处理方法对应的操作。
16.一种计算机设备,包括处理器、存储器、通信接口和通信总线所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的任务处理方法对应的操作。
CN201910567046.4A 2019-06-27 2019-06-27 任务处理方法、装置、存储介质及计算机设备 Active CN110471702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910567046.4A CN110471702B (zh) 2019-06-27 2019-06-27 任务处理方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910567046.4A CN110471702B (zh) 2019-06-27 2019-06-27 任务处理方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN110471702A CN110471702A (zh) 2019-11-19
CN110471702B true CN110471702B (zh) 2021-11-02

Family

ID=68507056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910567046.4A Active CN110471702B (zh) 2019-06-27 2019-06-27 任务处理方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN110471702B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899007A (zh) * 2015-06-15 2015-09-09 华中科技大学 利用Xeon Phi协处理器提升布隆滤波器处理性能的系统及方法
CN104965689A (zh) * 2015-05-22 2015-10-07 浪潮电子信息产业股份有限公司 一种cpu/gpu的混合并行计算方法及装置
US20160124865A1 (en) * 2012-11-28 2016-05-05 International Business Machines Corporation Dynamic evaluation and adaption of hardware hash functions
CN109753593A (zh) * 2018-12-29 2019-05-14 广州极飞科技有限公司 喷洒作业任务调度方法及无人机

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107797865A (zh) * 2017-10-20 2018-03-13 华为软件技术有限公司 用户任务处理方法及应用服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124865A1 (en) * 2012-11-28 2016-05-05 International Business Machines Corporation Dynamic evaluation and adaption of hardware hash functions
CN104965689A (zh) * 2015-05-22 2015-10-07 浪潮电子信息产业股份有限公司 一种cpu/gpu的混合并行计算方法及装置
CN104899007A (zh) * 2015-06-15 2015-09-09 华中科技大学 利用Xeon Phi协处理器提升布隆滤波器处理性能的系统及方法
CN109753593A (zh) * 2018-12-29 2019-05-14 广州极飞科技有限公司 喷洒作业任务调度方法及无人机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
分布式爬虫任务调度策略的优化;王霓虹等;《计算机软件及计算机应用》;20161030;全文 *

Also Published As

Publication number Publication date
CN110471702A (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
CN108345642B (zh) 采用代理ip爬取网站数据的方法、存储介质和服务器
US11626972B2 (en) Data processing method and apparatus
TWI743458B (zh) 一種並行化執行區塊鏈交易的方法、裝置及系統
JP6022650B2 (ja) バーチャルマシンの間でサービスチェーンフローパケットを経路指定するための技術
CN108846749B (zh) 一种基于区块链技术的分片化的交易执行系统及方法
EP3565219A1 (en) Service execution method and device
CN110474903B (zh) 可信数据获取方法、装置及区块链节点
CN111597040B (zh) 一种资源分配方法、装置、存储介质和电子设备
CN106844055B (zh) 一种任务的执行方法和装置
CN105550175A (zh) 恶意账户识别方法及装置
CN110471702B (zh) 任务处理方法、装置、存储介质及计算机设备
CN116886798A (zh) 业务报文处理方法、装置、电子设备及介质
CN109871260B (zh) 一种基于容器间共享内存的多维度服务限流方法及系统
CN109194703B (zh) 云平台主机间通信负载的处理方法、电子装置及介质
CN106779899A (zh) 恶意订单识别方法及装置
CN116185545A (zh) 一种页面渲染的方法及装置
CN109214884B (zh) 需求撮合方法及装置、电子设备
CN112817689A (zh) 对虚拟机进行分类排序的方法、装置和电子设备
CN108958902B (zh) 图计算方法和系统
CN113132306A (zh) 威胁事件处理方法及装置
CN111104528A (zh) 图片获取方法、装置及客户端
US20240078222A1 (en) Selective Addition of Datum to a Tree Data Structure
CN113515495B (zh) 数据文件分配方法及装置、智能设备和计算机存储介质
US11120054B2 (en) Hierarchical label generation for data entries
US11769005B2 (en) Information uniqueness assessment using string-based collection frequency

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
GR01 Patent grant
GR01 Patent grant