CN110458468A - 一种任务处理方法、装置、电子设备及存储介质 - Google Patents
一种任务处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110458468A CN110458468A CN201910762893.6A CN201910762893A CN110458468A CN 110458468 A CN110458468 A CN 110458468A CN 201910762893 A CN201910762893 A CN 201910762893A CN 110458468 A CN110458468 A CN 110458468A
- Authority
- CN
- China
- Prior art keywords
- subtask
- processed
- node server
- task
- calculate node
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种任务处理方法、装置、电子设备及存储介质,涉及云计算技术领域。具体实现方案为:确定待处理任务对应的多个待处理子任务,获取执行待处理子任务时需要请求的外部服务对应的服务提供服务器的每秒查询率;基于每秒查询率为各计算节点服务器分配待处理子任务;其中为各计算节点服务器分配的待处理子任务的数量总和不超过每秒查询率;根据为各计算节点服务器分配的待处理子任务分别向各计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问服务提供服务器执行对应的待处理子任务。本申请的技术方案减少了任务处理失败的次数,减少了任务反复分配投入的时间成本,进而提高了任务处理效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及云计算技术领域。
背景技术
云服务***就是利用云计算技术和思想构建起来的***平台,用于提供数据计算、以及数据存储等服务。
当采用云服务***提供服务时,云服务***会接收到待处理任务,并将待处理任务分配至相应的服务提供服务器。由于服务提供服务器在同一时间处理任务的能力有限,所以时常出现任务处理失败的情况。
举例说明,智能物流***(Intelligent Logistics System,ILS)是以百度地图引擎和地理大数据为基础,以高性能的自研调度算法为核心的智能物流云服务***,为多种运输场景的派单排线提供解决方案。
当智能调度***中的服务器接收到用户输入的目的网点后,会基于预先建立的路网矩阵进行路径规划,并输出规划好的自由配送路径。然而在执行路网矩阵构建任务时,通常存在调用路网矩阵构建服务器处理任务失败的情况,需要进行任务的再次下发和处理,降低了任务处理效率,给用户带来了较差的使用体验。
申请内容
本申请提供一种任务处理方法、装置、电子设备及存储介质,以减少任务处理时间,提高任务处理效率。
第一方面,本申请实施例提供了一种任务处理方法,应用于主节点服务器,包括:
确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率;
根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问所述服务提供服务器执行对应的待处理子任务。
上述申请中的一个实施例具有如下有益效果:能够减少任务处理时间,提高任务处理效率。通过对服务提供服务器的每秒查询率的获取,并基于每秒查询率进行待处理任务对应的多个待处理子任务的任务分配,使得服务提供服务器能够有效响应计算节点服务器在执行待处理子任务时对应的访问操作,既保证了待处理子任务的处理效率,又兼顾了服务提供服务器的处理能力,所以克服了服务提供服务器由于无法及时处理任务导致任务处理失败的技术问题,从而减少了任务处理失败的次数,减少了任务反复分配投入的时间成本,进而提高了任务处理效率。
可选的,所述待处理任务为待处理路网任务,所述待处理路网任务中包含有多个网点;
相应的,所述确定待处理任务对应的多个待处理子任务,包括:
根据所述多个网点确定需要获取路网信息的网点对,将确定的每个网点对分别作为一个待处理子任务;
相应的,所述需要请求的外部服务包括用于提供所述网点对之间的路网信息的服务。
上述可选方式可以将基于服务提供服务器的每秒查询率进行待处理路网任务对应的多个网点对的分配及任务分配消息的发送,使得服务提供服务器能够根据接收的任务分配信息提供网点对之间的路网信息,从而减少了提供路网信息服务时所耗费的时间,提高了服务提供效率。
可选的,在根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息之后,还包括:
若存在未被分配的待处理子任务,则返回执行待处理子任务分配操作,直至所有待处理子任务被分配完成。
上述可选方式可以在待处理子任务未完全被分配的情况下,继续触发待处理子任务的分配操作,保证了待处理任务被分配的完整度。
可选的,在所有待处理子任务被分配完成之后,还包括:
查询用于存储子任务执行结果的数据库,以确定各待处理子任务是否被成功执行,并存储确定结果;
查询所述确定结果,并在所述确定结果中存在未被成功执行的待处理子任务时,返回执行待处理子任务分配操作,直至所述确定结果中各待处理子任务被成功执行或满足任务分配停止条件。
上述可选方式通过在待处理子任务被执行过程中,对各待处理子任务执行结果的查询确定,以在存在未被成功执行的待处理子任务时,重新进行该待处理子任务的分配操作,保证待处理任务中各待处理子任务处理过程的有效性。
可选的,基于所述每秒查询率为所述节点服务器所对应的各计算节点服务器分配待处理子任务,包括:
确定所述计算节点服务器的数量,并根据所述每秒查询率与所确定数量的比值确定各计算节点服务器对应的子任务分配数量;
分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,进行任务分配。
上述可选方式通过计算节点服务器的数量,确定各计算节点服务器对应的子任务分配数量,进而根据子任务分配数量为各计算节点服务器进行待处理子任务的选取和分配,实现了主节点服务器对应的各计算节点服务器的任务均衡化,避免了由于计算节点服务器的任务不均衡导致某一计算节点服务器宕机带来的影响,从而间接提高了任务处理效率。
可选的,分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,包括:
若所述待处理任务的数量为多个,则依据轮询机制或任务优先级,确定为各计算节点服务器选取待处理子任务时所对应的待处理任务。
上述可选方式通过轮训机制或任务优先级的方式进行待处理任务的选取,完善了存在多个待处理任务时的待处理子任务的分配机制,保证了待处理任务的有序分配。
可选的,根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,包括:
根据为各计算节点服务器分配的待处理子任务,向消息队列MQ集群中的中心节点发送针对各计算节点服务器的任务分配消息,以使各计算节点服务器从所述中心节点中的ActiveMQ读取自身的任务分配消息;或者,
根据为各计算节点服务器分配的待处理子任务,分别采用zeroMQ机制向对应的计算节点服务器发送任务分配消息。
上述可选方式通过设置消息队列进行任务分配消息的发送,通过异步处理提高了***性能和削峰、降低了主节点服务器和计算节点服务器所构成***的耦合性。
可选的,根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,包括:
根据为各计算节点服务器分配的待处理子任务,分别按照设定速率向对应的计算节点服务器发送任务分配消息。
上述可选方式通过对主节点服务器进行任务分配消息发送时的发送速率进行设定,避免了任务分配消息发送过快导致的消息阻塞现象的发生,从而提高了任务分配效率。
第二方面,本申请实施例还提供了一种任务处理方法,应用于计算节点服务器,包括:
获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息;其中,所述待处理子任务来自同一待处理任务,所述待处理子任务的数量与所述主节点服务器为其他计算节点服务器分配的待处理子任务的数量的总和,不超过执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
根据所述任务分配消息,访问所述服务提供服务器,以执行所述任务分配消息对应的待处理子任务。
可选的,所述待处理任务为待处理路网任务,所述待处理路网任务中包含有多个网点,各待处理子任务为需要获取路网信息的一个网点对。
可选的,在根据所述任务分配消息,访问所述服务提供服务器之前,还包括:
若每秒接收的任务分配消息对应的待处理子任务的数量大于所述每秒查询率,则按照预设规则丢弃至少一个待处理子任务。
可选的,获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息,包括:
从消息队列MQ集群的中心节点中的ActiveMQ读取与所述计算节点服务器对应的任务分配消息;其中所述任务分配消息是由主节点服务器根据为所述计算节点服务器分配的待处理子任务发送的;或者,
接收主节点服务器根据为所述计算节点服务器分配的待处理子任务,并采用zeroMQ机制所发送的任务分配消息。
第三方面,本申请实施例还提供了一种任务处理装置,配置于主节点服务器,包括:
查询率获取模块,用于确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
子任务分配模块,用于基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率;
分配消息发送模块,用于根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问所述服务提供服务器执行对应的待处理子任务。
第四方面,本申请实施例还提供了一种任务处理装置,配置于计算节点服务器,包括:
分配消息获取模块,用于获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息;其中,所述待处理子任务来自同一待处理任务,所述待处理子任务的数量与所述主节点服务器为其他计算节点服务器分配的待处理子任务的数量的总和,不超过执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
子任务处理模块,用于根据所述任务分配消息,访问所述服务提供服务器,以执行所述任务分配消息对应的待处理子任务。
第五方面,本申请实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例所提供的一种任务处理方法。
第六方面,本申请实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第二方面实施例所提供的一种任务处理方法。
第七方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面实施例所提供的一种任务处理方法。
第八方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第二方面实施例所提供的一种任务处理方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1A是本申请实施例提供的一种任务处理***的架构示意图;
图1B是本申请实施例一中的一种任务处理方法的流程图;
图2是本申请实施例二中的一种任务处理方法的流程图;
图3是本申请实施例三中的一种任务处理方法的流程图;
图4A是本申请实施例四中的一种任务处理方法的流程图;
图4B是本申请实施例四中的一种任务处理***的架构示意图;
图5是本申请实施例五中的一种任务处理装置的结构图;
图6是本申请实施例六中的一种任务处理装置的结构图;
图7是本申请实施例七中的用来实现本申请实施例的任务处理方法的服务器的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了清楚的介绍本申请实施例的各技术方案,首先对本申请所涉及的一种***架构进行详细说明。
参见图1A所示的一种***架构的结构示意图,该***框架采用主从(Master-Slave)设备模式,该***包括主节点服务器10、计算节点服务器20和服务提供服务器30。
其中,主节点服务器10对应主从设备中的主设备,计算节点服务器20对应主从设备中的从设备。
主节点服务器10将一个原始任务变为不同的子任务,并将子任务分配给计算节点服务器,并整合计算节点服务器反馈的子任务执行结果,计算得到最终结果。
计算节点服务器20通过访问服务提供服务器进行子任务处理,并向主节点服务器反馈各子任务的执行结果。
服务提供服务器30为各计算节点服务器执行子任务时,提供所需的服务。
实施例一
图1B是本申请实施例一中的一种任务处理方法的流程图,本申请实施例适用于在图1A所示的***架构中主节点服务器接收到诸如路网信息获取等待处理任务后,对待处理任务进行分配的情况,该方法通过任务处理装置执行,该装置由软件和/或硬件实现,并具体配置在服务器集群中的主节点服务器上。
如图1B所示的一种任务处理方法,应用于主节点服务器,包括:
S101、确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率。
其中,待处理任务可以预先存储在主节点服务器本地,并在需要处理该待处理任务时进行待处理任务的获取及其待处理子任务的确定;还可以预先存储在与主节点服务器相关联其其他电子设备、或云端中,例如消息队列中,并在需要处理待处理任务时进行待处理任务的获取及其待处理子任务的确定;或者还可以直接与用户的终端设备通信连接,并在用户触发终端设备中的设定区域时向主节点服务器进行待处理任务的实时发送,相应的主节点服务器接收该待处理任务并进行与待处理任务对应的待处理子任务的确定。
其中,每秒查询率用于衡量服务器在规定时间内所处理的流量,与服务器的数据处理能力相关联。
示例性地,获取执行待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率,可以是由主节点服务器直接从本地预存的服务器性能列表中查找处理待处理子任务需要请求的服务提供服务器对应的每秒查询率;还可以从与服务提供服务器通信连接的各计算节点服务器中进行服务提供服务器相对应的每秒查询率;还可以直接从服务提供服务器中进行每秒查询率的获取;或者还可以在***中额外设置一数据库进行***中各服务器性能指标的存储,并在需要时在数据库中进行服务提供服务器的每秒查询率的获取。
在本申请实施例的一种可选实施方式中,待处理任务可以是待处理路网任务,该待处理路网任务中包含有多个网点;相应的,确定待处理任务对应的多个待处理子任务,可以是根据多个网点确定需要获取路网信息的网点对,将确定的每个网点对分别作为一个待处理子任务。相应的,所述需要请求的外部服务包括用于提供所述网点对之间的路网信息的服务。
其中,待处理路网任务可以理解为在智能物流配送时,需要预先进行的路网矩阵构建任务,以便智能配送***接收到用户输入的配送目的网点后,能够基于预先构建的路网矩阵进行路径规划,并输出规划出的最优配送路径。其中,路网矩阵中的每个元素包含对应配送起始网点和配送目标网点之间的配送距离、配送时间以及配送路线等。相应的,网点对的路网信息可以理解为网点对的两个网点之间的距离信息、时间信息、和路线信息中的至少一种。
S102、基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率。
可选的,基于每秒查询率为主节点服务器所对应的各计算节点服务器分配待处理子任务,可以是确定所述计算节点服务器的数量,并根据所述每秒查询率与所确定数量的比值确定各计算节点服务器对应的子任务分配数量;分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,进行任务分配。
或者可选的,基于每秒查询率为主节点服务器所对应的各计算节点服务器分配待处理子任务,还可以是确定各计算节点服务器的可分配任务数量;根据每秒查询率和各计算节点服务器的可分配任务数量,确定各计算节点服务器对应的子任务分配数量;分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,进行任务分配。
示例性地,确定各计算节点服务器的可分配任务数量,可以是直接获取各计算节点服务器当前时刻对应的可分配任务数量;还可以获取各计算节点服务器的最大任务分配数量和当前已分配任务数量,并根据最大任务分配数量和当前已分配任务数量作差,得到各计算节点服务器对应的可分配任务数量。
示例性地,根据每秒查询率和各计算节点服务器的可分配任务数量,确定各计算节点服务器对应的子任务分配数量,可以是确定各计算节点服务器的可分配任务数量的总和;根据计算节点服务器对应的可分配任务数量与可分配任务数量总和的比值,分别确定各计算节点服务器对应的任务分配比;根据每秒查询率与任务分配比的乘积,分别确定各计算节点服务器对应的可分配任务数量,并将可分配任务数量作为子任务分配数量。
可以理解的是,通过计算节点服务器对应的子任务分配数量的确定,并根据子任务分配数量为各计算节点服务器进行待处理子任务的选取和分配,实现了主节点服务器对应的各计算节点服务器的任务均衡化,避免了由于计算节点服务器的任务不均衡导致某一计算节点服务器宕机带来的影响,从而间接提高了任务处理效率。
在本申请实施例的一种可选实施方式中,当待处理任务数量为多个时,为了保证各待处理任务的优选有序分配,进而保证各待处理任务的有效处理,分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,进行任务分配,可以依据轮询机制或任务优先级,确定为各计算节点服务器选取待处理子任务时所对应的待处理任务,并从确定的待处理任务对应的待处理子任务中,选取子任务分配数量的待处理子任务进行任务分配。
S103、根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问所述服务提供服务器执行对应的待处理子任务。
示例性地,可以根据为各节点服务器分配的待处理子任务分别向对应的计算节点服务器直接进行任务分配消息的发送。可以理解的是,为了提高***性能和削峰,降低主节点服务器与各计算节点服务器的耦合性,还可以在主节点服务器与各计算节点服务器之间设置消息队列,并通过消息队列向各计算节点服务器进行任务分配消息的发送。
相应的,计算节点服务器接收任务分配消息,并根据接收到的任务分配消息,通过访问服务提供服务器执行对应的待处理子任务。
在本申请实施例的一种可选实施方式中,根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,可以是根据为各计算节点服务器分配的待处理子任务,向消息队列(Message Queue,MQ)集群中的中心节点发送针对各计算节点服务器的任务分配消息,以使各计算节点服务器从所述中心节点中的ActiveMQ读取自身的任务分配消息。
具体的,主节点服务器作为消息生成者,根据为各计算节点服务器分配的待处理子任务,产生针对各计算节点服务器的任务分配消息,并将任务分配消息传输给中心节点;各计算节点服务器作为消息消费者,从中心节点中的ActiveMQ读取与自身对应的任务分配消息。
在本申请实施例的另一可选实施方式中,根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,可以是根据为各计算节点服务器分配的待处理子任务,分别采用zeroMQ机制向对应的计算节点服务器发送任务分配消息。
可以理解的是,为了避免任务分配消息发送过快导致的消息阻塞现象的发生,从而提高任务分配效率,根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,还可以是根据为各计算节点服务器分配的待处理子任务,分别按照设定速率向对应的计算节点服务器发送任务分配消息。通过设定任务分配消息的发送速率,对主节点服务器的消息发送的次数和量级加以限定,从而从源头避免消息阻塞现象的发生。
本申请实施例的技术方案通过服务提供服务器的每秒查询率的获取,并基于每秒查询率进行待处理任务对应的多个待处理子任务的任务分配,使得服务提供服务器能够有效响应计算节点服务器在执行待处理子任务时对应的访问操作,既保证了待处理子任务的处理效率,又兼顾了服务提供服务器的处理能力,所以克服了服务提供服务器由于无法及时处理任务导致任务处理失败的技术问题,从而减少了任务处理失败的次数,减少了任务反复分配投入的时间成本,进而提高了任务处理效率。
实施例二
图2是本申请实施例二中的一种任务处理方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,在操作“根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息”之后,追加“若存在未被分配的待处理子任务,则返回执行待处理子任务分配操作,直至所有待处理子任务被分配完成”,以完善任务处理机制。
如图2所示的一种任务处理方法,应用于主节点服务器,包括:
S201、确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率。
S202、基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率。
S203、根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问所述服务提供服务器执行对应的待处理子任务。
S204、若存在未被分配的待处理子任务,则返回执行待处理子任务分配操作,直至所有待处理子任务被分配完成。
由于待处理任务至少为一个,一个待处理任务对应多个待处理子任务,因此,可能存在仅进行一次任务分配无法将所有待处理子任务分配完毕的情况,因此需要对未被分配的待处理子任务进行查询,当仍存在未被分配的待处理子任务时,继续进行待处理子任务的任务分配操作,直至完成所有待处理子任务的分配。
可选的,在进行待处理子任务分配时,可以对待处理子任务进行标记,当存储待处理子任务的区域(例如可以是主节点服务器本地、与主节点服务器关联的其他存储设备或云端)中的待处理子任务还包括未被标记的待处理子任务时,表明待处理子任务尚未被完全分配。
可以理解的是,为了节约存储资源,可选的,在进行待处理子任务分配时,还可以直接将已分配的待处理子任务进行删除,当存储待处理子任务的区域(例如可以是主节点服务器本地、与主节点服务器关联的其他存储设备或云端)还存在待处理子任务时,表明待处理子任务尚未被完全分配。
需要说明的是,在所有待处理子任务被分配完成之后,仍然存在由于计算环境或其他因素的干扰,使得待处理子任务在被执行过程中存在执行失败而影像整个待处理任务的执行结果的情况。为了避免上述情况的发生,在本申请实施例的一种可选实施方式中,可以预先设定一数据库,对各待处理子任务的执行结果进行存储;相应的,主节点服务器通过查询用于存储子任务执行结果的数据库,确定各待处理子任务是否被成功执行。为了方便执行结果的查询,主节点服务器还可以将确定结果进行存储。
示例性地,为了便于后续对确定结果的查询,可以采用位图等数据结构进行确定结果的存储。
为了保证执行失败的子任务的顺利执行,在执行待处理任务的过程中,主节点服务器或实时或定时查询确定结果,并在确定结果中存在未被成功执行的待处理子任务时,返回执行待处理子任务分配操作,直至所述确定结果中各待处理子任务被成功执行或满足任务分配停止条件。
其中,任务分配停止条件可以是执行失败的待处理子任务被重复分配和执行设定次数后仍未成功,或者接收到任务发起方发送的任务终止请求等。
本申请实施例通过在根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息之后,追加若存在未被分配的待处理子任务,则返回执行待处理子任务分配操作,直至所有待处理子任务被分配完成的操作,使得自动实现下一次待处理子任务的分配操作,直至所有待处理子任务被分配完成,保证了待处理任务被分配的完整度,为各待处理任务的有效执行奠定基础。
实施例三
图3是本申请实施例三中的一种任务处理方法的流程图,本申请实施例适用于图1A所示的计算节点服务器接收到诸如路网矩阵构建等待处理任务后,对待处理任务进行处理的情况,该方法通过任务处理装置执行,该装置由软件和/或硬件实现,并具体配置在服务器集群中的计算节点服务器上。
如图3所示的一种任务处理方法,应用于计算节点服务器,包括:
S301、获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息。
其中,所述待处理子任务来自同一待处理任务,所述待处理子任务的数量与所述主节点服务器为其他计算节点服务器分配的待处理子任务的数量的总和,不超过执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率。
其中,待处理任务可以预先存储在主节点服务器本地,并在需要处理该待处理任务时进行待处理任务的获取及其待处理子任务的确定;还可以预先存储在与主节点服务器相关联其其他电子设备、或云端中,例如消息队列中,并在需要处理待处理任务时进行待处理任务的获取及其待处理子任务的确定;或者还可以直接与用户的终端设备通信连接,并在用户触发终端设备中的设定区域时向主节点服务器进行待处理任务的实时发送,相应的主节点服务器接收该待处理任务并进行与待处理任务对应的待处理子任务的确定。
其中,每秒查询率用于衡量服务器在规定时间内所处理的流量,与服务器的数据处理能力相关联。
示例性地,主节点服务器确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率;根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息。
相应的,计算节点服务器获取主节点服务器根据为计算节点服务器分配的待处理子任务所发送的任务分配消息。
可以理解的是,由于计算节点服务器接收的待处理子任务的数量与主节点服务器为其他计算节点服务器分配的待处理子任务的数量的总和,不超过服务提供服务器的每秒查询率,使得服务提供服务器能够有效响应计算节点服务器在执行待处理子任务时对服务提供服务器的访问操作,既保证了待处理子任务的处理效率,又兼顾了服务提供服务器的处理能力。
在本申请实施例的一种可选实施方式中,待处理任务可以是待处理路网任务,该待处理路网任务中包含有多个网点;相应的,各待处理子任务为需要获取路网信息的一个网点对。
其中,待处理路网任务可以理解为在智能物流配送时,需要预先进行的路网矩阵构建任务,以便智能配送***接收到用户输入的配送目的网点后,能够基于预先构建的路网矩阵进行路径规划,并输出规划出的最优配送路径。其中,路网矩阵中的每个元素包含对应配送起始网点和配送目标网点之间的配送距离、配送时间以及配送路线等。相应的,网点对的路网信息可以理解为网点对的两个网点之间的距离信息、时间信息、和路线信息中的至少一种。
在本申请实施例的一种可选实施方式中,获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息,可以是从消息队列MQ集群的中心节点中的ActiveMQ读取与所述计算节点服务器对应的任务分配消息;其中所述任务分配消息是由主节点服务器根据为所述计算节点服务器分配的待处理子任务发送的。
具体的,主节点服务器作为消息生成者,根据为各计算节点服务器分配的待处理子任务,产生针对各计算节点服务器的任务分配消息,并将任务分配消息传输给中心节点。相应的,计算节点服务器作为消息消费者,从中心节点中的ActiveMQ读取与自身对应的任务分配消息。
在本申请实施例的另一可选实施方式中,获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息,可以是接收主节点服务器根据为所述计算节点服务器分配的待处理子任务,并采用zeroMQ机制所发送的任务分配消息。
S302、根据所述任务分配消息,访问所述服务提供服务器,以执行所述任务分配消息对应的待处理子任务。
具体的,计算节点服务器在执行待处理子任务时,或根据任务分配消息,访问提供执行待处理子任务时需要请求的外部服务所对应的服务提供服务器,服务提供服务器进行相应服务的提供,以辅助计算节点服务器执行待处理子任务。
本申请实施例的技术方案通过服务提供服务器的每秒查询率对分配至计算节点服务器的待处理子任务的数量加以限定,使得计算节点服务器接收的待处理子任务的数量与主节点服务器发送至其他计算节点服务器的待处理子任务的数量的总和,不超过服务提供服务器的每秒查询率,使得服务提供服务器能够有效响应计算节点服务器在执行待处理子任务时对应的访问操作,既保证了待处理子任务的处理效率,又兼顾了服务提供服务器的处理能力,所以克服了服务提供服务器由于无法及时处理任务导致任务处理失败的技术问题,从而减少了任务处理失败的次数,减少了任务反复分配投入的时间成本,进而提高了任务处理效率。
在上述各实施例的技术方案的基础上,当计算节点服务器单次获取过多的任务分配消息时,存在无法对任务分配消息对应的待处理子任务进行有效处理的情况,进而会对待处理任务的任务执行结果产生影响。为了避免上述情况的发生,在根据所述任务分配消息,访问所述服务提供服务器之前,还可以确定计算节点服务器自身每秒接收的任务分配消息的数量;若每秒接收的任务分配消息对应的待处理子任务的数量大于所述每秒查询率,则按照预设规则丢弃至少一个待处理子任务。
实施例四
图4A是本申请实施例四中的一种任务处理方法的流程图,本申请实施例在上述各实施例的技术方案的基础上提供了一种优选实施方式。
结合图4B所示的一种路网任务处理***的架构图,对本申请实施例提供的任务处理方法进行详细说明。
其中,图4B所示的路网任务处理***采用主从(Master-Slave)设备模式,包括主节点服务器40作为主设备,计算节点服务器作为从设备。该路网任务处理***还包括消息队列60、地图服务器70以及数据库80。
如图4A所示的一种任务处理方法,包括:
S401、主节点服务器初始化与路网任务对应的路网快照。
其中,路网任务中包括多个网点,其中任意两个网点可形成点对数据,路网任务即为获取各网点对之间的路网信息的任务。路网信息包括配送距离、配送时间和配送路线。
其中,路网信息可以通过请求地图服务器进行获取,因此,路网任务中的点对数据的数量与需要请求地图服务器的次数相等。由于点对数据需要通过组装成任务包进行下发,因此下发任务包的数量与点对数据的数量也相等。
当路网任务中包括6个网点时,路网任务对应的点对数据有6*(6-1)=30个,相应的,可形成任务包30个,请求地图服务器的次数同样为30次。
路网快照是指通过一系列的位图(bitMap)存储的点对数据的执行状态信息。
S402、在路网快照中搜索未被成功执行的点对数据。
主节点服务器知道总共需要下发的任务包(也即点对数据)的数量,当主节点感知当前路网任务的任务包发送完毕后,会等待一段时间(任务包被执行的时间*8),当等待完成后会去数据库中检查每一个点对数据的执行状态信息,然后用bitMap(每个字节可以存储8各状态,可以大大较少内存的使用情况)本地存储。
S403、将未被成功执行的点对数据组装任务包。
主节点服务器根据路网快照中记录的点对数据的执行状态信息能够感知哪些点对数据还没有被成功执行,然后将未被成功执行的点对数据返回到组装任务包的过程中,继续搜索由于响应超时或者地图接口错误等导致的没有被成功执行的任务包,将搜索到的任务包再次发送,并在发送完成后在数据库中查找前一次未被执行的点对数据。
S404、获取地图服务器为路网任务处理***开放的每秒查询率。
S405、基于每秒查询率与计算节点服务器的比值,确定向各计算节点服务器分配任务包数量。
S406、对应确定的任务包数量,通过消息队列或自通信的方式分别把相应数量的任务包发送给各计算节点服务器。
例如,可以利用消息队列集群中的中心节点的ActiveMQ进行消息的任务下发;或者,利用zeroMQ进行端到端的消息下发。
由于任务包的下发是通过消息队列实现,可以通过动态调节或固定设置消息队列的每秒下发次数,控制主节点服务器下发任务处理消息的次数和量级,例如限制activeMQ或者zeroMQ的速率,这样在任务处理***的源头控制了生产者(主节点服务器)的生产能力。
由于消费者是执行任务包的载体,为了防止在计算节点服务器(消费者)内产生大量的消息堆积,还可以设置每个计算节点服务器每秒接收任务包的最大数量为地图服务器的每秒查询率。当然,集群中有多台计算节点服务器时,即使设置了最大值,因为生产者的生产速率是一定的,所以最终整个集群会回到共享整个每秒查询率的时间段,而不会造成地图资源的浪费。
当计算节点每秒接收到的消息的点对量级大每秒查询率时,会进行部分任务包的丢弃。丢弃的任务包会在下次任务快照搜集时被重新下发执行。
S407、计算节点服务器接收到任务消息包后进行拆包。
S408、拆包后通过访问地图服务器进行任务的分片执行。
S409、将点对数据写入数据库中。
S410、主节点服务器在发送完任务包后增量式去数据库中查询点对的被执行状态。
S411、查询完成后在把有值的点对数据在路网快照中对应的被执行状态进行标记。
例如网点A和网点B形成的点对数据“A-B”,当点对数据“A-B”对应的任务包被成功执行后,可以在数据库中修改“A-B”的被执行状态为成功执行。若数据库采用bitMap进行被执行状态的存储时,若被成功执行的点对数据对应的bit下标为23,则设置该bitMap中23位置的值为“true”,表征该点对数据对应的任务包被成功执行。
S412、主节点服务器周期性的搜索数据库,直至所有点对数据对应的路网信息都获取完成为止。
可以理解的是,需要预先设置一个重复执行次数对未被成功执行的点对数据进行限制,当达到最大尝试次数,但仍未被成功执行时,采用预设的兜底计算规则对该任务包进行处理。
实施例五
图5是本申请实施例五中的一种任务处理装置的结构图,本申请实施例适用于在图1A所示的***架构中主节点服务器接收到诸如路网矩阵构建等待处理任务后,对待处理任务进行分配处理的情况,该装置由软件和/或硬件实现,并具体配置在服务器集群中的主节点服务器上。
如图5所示的一种任务处理装置500,包括:查询率获取模块501、子任务分配模块502、和分配消息发送模块503。
查询率获取模块501,用于确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
子任务分配模块502,用于基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率;
分配消息发送模块503,用于根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问所述服务提供服务器执行对应的待处理子任务。
本申请实施例的技术方案通过查询率获取模块进行服务提供服务器的每秒查询率的获取,并通过子任务分配模块和分配消息发送模块基于每秒查询率进行待处理任务对应的多个待处理子任务的任务分配,使得服务提供服务器能够有效响应计算节点服务器在执行待处理子任务时对应的访问操作,既保证了待处理子任务的处理效率,又兼顾了服务提供服务器的处理能力,所以克服了服务提供服务器由于无法及时处理任务导致任务处理失败的技术问题,从而减少了任务处理失败的次数,减少了任务反复分配投入的时间成本,进而提高了任务处理效率。
进一步地,所述待处理任务为待处理路网任务,所述待处理路网任务中包含有多个网点;
相应的,查询率获取模块501在执行确定待处理任务对应的多个待处理子任务时,具体用于:
根据所述多个网点确定需要获取路网信息的网点对,将确定的每个网点对分别作为一个待处理子任务;
相应的,所述需要请求的外部服务包括用于提供所述网点对之间的路网信息的服务。
进一步地,该装置还包括,子任务分配循环模块,用于:
在根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息之后,若存在未被分配的待处理子任务,则返回执行待处理子任务分配操作,直至所有待处理子任务被分配完成。
进一步地,该装置还包括,执行结果确定模块,用于:
在所有待处理子任务被分配完成之后,查询用于存储子任务执行结果的数据库,以确定各待处理子任务是否被成功执行,并存储确定结果;
相应的,子任务分配循环模块,还用于:
查询所述确定结果,并在所述确定结果中存在未被成功执行的待处理子任务时,返回执行待处理子任务分配操作,直至所述确定结果中各待处理子任务被成功执行或满足任务分配停止条件。
进一步地,子任务分配模块502,包括:
分配数量确定单元,用于确定所述计算节点服务器的数量,并根据所述每秒查询率与所确定数量的比值确定各计算节点服务器对应的子任务分配数量;
任务分配子单元,用于分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,进行任务分配。
进一步地,任务分配子单元,在执行分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务时,具体用于:
若所述待处理任务的数量为多个,则依据轮询机制或任务优先级,确定为各计算节点服务器选取待处理子任务时所对应的待处理任务。
进一步地,分配消息发送模块503,具体用于:
根据为各计算节点服务器分配的待处理子任务,向消息队列MQ集群中的中心节点发送针对各计算节点服务器的任务分配消息,以使各计算节点服务器从所述中心节点中的ActiveMQ读取自身的任务分配消息;或者,
根据为各计算节点服务器分配的待处理子任务,分别采用zeroMQ机制向对应的计算节点服务器发送任务分配消息。
进一步地,分配消息发送模块503,具体用于:
根据为各计算节点服务器分配的待处理子任务,分别按照设定速率向对应的计算节点服务器发送任务分配消息。
上述任务处理装置可执行本申请任意实施例所提供的任务处理方法,具备执行任务处理方法相应的功能模块和有益效果。
实施例六
图6是本申请实施例六中的一种任务处理装置的结构图,本申请实施例适用于图1A所示的计算节点服务器接收到诸如路网矩阵构建等待处理任务后,对待处理任务进行处理的情况,该装置由软件和/或硬件实现,并具体配置在服务器集群中的计算节点服务器上。
如图6所示的一种任务处理装置600,包括:分配消息获取模块601和子任务处理模块602。
分配消息获取模块601,用于获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息;其中,所述待处理子任务来自同一待处理任务,所述待处理子任务的数量与所述主节点服务器为其他计算节点服务器分配的待处理子任务的数量的总和,不超过执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
子任务处理模块602,用于根据所述任务分配消息,访问所述服务提供服务器,以执行所述任务分配消息对应的待处理子任务。
本申请实施例的技术方案通过分配消息获取模块基于服务提供服务器的每秒查询率对分配至计算节点服务器的待处理子任务的数量加以限定,使得计算节点接收的待处理子任务的数量与主节点服务器发送至其他计算节点服务器的待处理子任务的数量的总和,不超过服务提供服务器的每秒查询率,使得服务提供服务器能够有效响应计算节点服务器在执行待处理子任务时对应的访问操作,既保证了待处理子任务的处理效率,又兼顾了服务提供服务器的处理能力,所以克服了服务提供服务器由于无法及时处理任务导致任务处理失败的技术问题,从而减少了任务处理失败的次数,减少了任务反复分配投入的时间成本,进而提高了任务处理效率。
进一步地,待处理任务为待处理路网任务,所述待处理路网任务中包含有多个网点,各待处理子任务为需要获取路网信息的一个网点对。
进一步地,该装置还包括,任务丢弃模块,用于:
在根据所述任务分配消息,访问所述服务提供服务器之前,若每秒接收的任务分配消息对应的待处理子任务的数量大于所述每秒查询率,则按照预设规则丢弃至少一个待处理子任务。
进一步地,分配消息获取模块601,具体用于:
从消息队列MQ集群的中心节点中的ActiveMQ读取与所述计算节点服务器对应的任务分配消息;其中所述任务分配消息是由主节点服务器根据为所述计算节点服务器分配的待处理子任务发送的;或者,
接收主节点服务器根据为所述计算节点服务器分配的待处理子任务,并采用zeroMQ机制所发送的任务分配消息。
上述任务处理装置可执行本申请任意实施例所提供的任务处理方法,具备执行任务处理方法相应的功能模块和有益效果。
实施例七
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的任务处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的任务处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的任务处理方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的任务处理方法对应的程序指令/模块(例如,附图5所示的包括查询率获取模块501、子任务分配模块502、和分配消息发送模块503的任务处理装置500;或者附图6所示的包括分配消息获取模块601和子任务处理模块602的任务处理装置600)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的任务处理方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据执行任务处理方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至执行任务处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
执行任务处理方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与执行任务处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,服务器在执行任务处理方法的过程中,能够通过对服务提供服务器的每秒查询率的获取,并基于每秒查询率进行待处理任务对应的多个待处理子任务的任务分配,使得服务提供服务器能够有效响应计算节点服务器在执行待处理子任务时对应的访问操作,既保证了待处理子任务的处理效率,又兼顾了服务提供服务器的处理能力,所以克服了服务提供服务器由于无法及时处理任务导致任务处理失败的技术问题,从而减少了任务处理失败的次数,减少了任务反复分配投入的时间成本,进而提高了任务处理效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (19)
1.一种任务处理的方法,应用于主节点服务器,其特征在于,包括:
确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率;
根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问所述服务提供服务器执行对应的待处理子任务。
2.根据权利要求1所述的方法,其特征在于,所述待处理任务为待处理路网任务,所述待处理路网任务中包含有多个网点;
相应的,所述确定待处理任务对应的多个待处理子任务,包括:
根据所述多个网点确定需要获取路网信息的网点对,将确定的每个网点对分别作为一个待处理子任务;
相应的,所述需要请求的外部服务包括用于提供所述网点对之间的路网信息的服务。
3.根据权利要求1所述的方法,其特征在于,在根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息之后,还包括:
若存在未被分配的待处理子任务,则返回执行待处理子任务分配操作,直至所有待处理子任务被分配完成。
4.根据权利要求3所述的方法,其特征在于,在所有待处理子任务被分配完成之后,还包括:
查询用于存储子任务执行结果的数据库,以确定各待处理子任务是否被成功执行,并存储确定结果;
查询所述确定结果,并在所述确定结果中存在未被成功执行的待处理子任务时,返回执行待处理子任务分配操作,直至所述确定结果中各待处理子任务被成功执行或满足任务分配停止条件。
5.根据权利要求1所述的方法,其特征在于,所述基于所述每秒查询率为所述节点服务器所对应的各计算节点服务器分配待处理子任务,包括:
确定所述计算节点服务器的数量,并根据所述每秒查询率与所确定数量的比值确定各计算节点服务器对应的子任务分配数量;
分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,进行任务分配。
6.根据权利要求5所述的方法,其特征在于,所述分别为各计算节点服务器从所述多个待处理子任务中选取所述子任务分配数量的待处理子任务,包括:
若所述待处理任务的数量为多个,则依据轮询机制或任务优先级,确定为各计算节点服务器选取待处理子任务时所对应的待处理任务。
7.根据权利要求1所述的方法,其特征在于,所述根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,包括:
根据为各计算节点服务器分配的待处理子任务,向消息队列MQ集群中的中心节点发送针对各计算节点服务器的任务分配消息,以使各计算节点服务器从所述中心节点中的ActiveMQ读取自身的任务分配消息;或者,
根据为各计算节点服务器分配的待处理子任务,分别采用zeroMQ机制向对应的计算节点服务器发送任务分配消息。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,包括:
根据为各计算节点服务器分配的待处理子任务,分别按照设定速率向对应的计算节点服务器发送任务分配消息。
9.一种任务处理方法,其特征在于,应用于计算节点服务器,包括:
获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息;其中,所述待处理子任务来自同一待处理任务,所述待处理子任务的数量与所述主节点服务器为其他计算节点服务器分配的待处理子任务的数量的总和,不超过执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
根据所述任务分配消息,访问所述服务提供服务器,以执行所述任务分配消息对应的待处理子任务。
10.根据权利要求9所述的方法,其特征在于,所述待处理任务为待处理路网任务,所述待处理路网任务中包含有多个网点,各待处理子任务为需要获取路网信息的一个网点对。
11.根据权利要求9所述的方法,其特征在于,在根据所述任务分配消息,访问所述服务提供服务器之前,还包括:
若每秒接收的任务分配消息对应的待处理子任务的数量大于所述每秒查询率,则按照预设规则丢弃至少一个待处理子任务。
12.根据权利要求9-11任一项所述的方法,其特征在于,所述获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息,包括:
从消息队列MQ集群的中心节点中的ActiveMQ读取与所述计算节点服务器对应的任务分配消息;其中所述任务分配消息是由主节点服务器根据为所述计算节点服务器分配的待处理子任务发送的;或者,
接收主节点服务器根据为所述计算节点服务器分配的待处理子任务,并采用zeroMQ机制所发送的任务分配消息。
13.一种任务处理的装置,配置于主节点服务器,其特征在于,包括:
查询率获取模块,用于确定待处理任务对应的多个待处理子任务,并获取执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
子任务分配模块,用于基于所述每秒查询率为所述主节点服务器所对应的各计算节点服务器分配待处理子任务;其中,为各计算节点服务器所分配的待处理子任务的数量总和不超过所述每秒查询率;
分配消息发送模块,用于根据为各计算节点服务器分配的待处理子任务分别向对应的计算节点服务器发送任务分配消息,以使各计算节点服务器根据接收到的任务分配消息,通过访问所述服务提供服务器执行对应的待处理子任务。
14.一种任务处理装置,其特征在于,配置于计算节点服务器,包括:
分配消息获取模块,用于获取主节点服务器根据为所述计算节点服务器分配的待处理子任务所发送的任务分配消息;其中,所述待处理子任务来自同一待处理任务,所述待处理子任务的数量与所述主节点服务器为其他计算节点服务器分配的待处理子任务的数量的总和,不超过执行所述待处理子任务时需要请求的外部服务所对应的服务提供服务器的每秒查询率;
子任务处理模块,用于根据所述任务分配消息,访问所述服务提供服务器,以执行所述任务分配消息对应的待处理子任务。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的一种任务处理方法。
16.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求9-12中任一项所述的一种任务处理方法。
17.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的一种任务处理方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求9-11中任一项所述的一种任务处理方法。
19.一种任务处理方法,其特征在于,包括:
确定待处理任务对应的多个待处理子任务;
根据执行所述待处理子任务时需要访问的服务提供服务器的每秒查询率,向所述服务提供服务器发送至少一个任务分配消息,以使所述服务提供服务器执行与各所述任务分配消息对应的待处理子任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910762893.6A CN110458468A (zh) | 2019-08-16 | 2019-08-16 | 一种任务处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910762893.6A CN110458468A (zh) | 2019-08-16 | 2019-08-16 | 一种任务处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110458468A true CN110458468A (zh) | 2019-11-15 |
Family
ID=68487383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910762893.6A Pending CN110458468A (zh) | 2019-08-16 | 2019-08-16 | 一种任务处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110458468A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045811A (zh) * | 2019-12-23 | 2020-04-21 | 五八有限公司 | 一种任务分配方法、装置、电子设备及存储介质 |
CN111338797A (zh) * | 2020-02-19 | 2020-06-26 | 望海康信(北京)科技股份公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
CN111708627A (zh) * | 2020-06-22 | 2020-09-25 | 中国平安财产保险股份有限公司 | 基于分布式调度框架的任务调度方法以及装置 |
CN111736965A (zh) * | 2019-12-11 | 2020-10-02 | 西安宇视信息科技有限公司 | 任务调度方法、装置、调度服务器和机器可读存储介质 |
CN111949387A (zh) * | 2020-07-17 | 2020-11-17 | 上海淇馥信息技术有限公司 | 一种处理业务任务的方法、装置和电子设备 |
CN112181662A (zh) * | 2020-10-13 | 2021-01-05 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN112631805A (zh) * | 2020-12-28 | 2021-04-09 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置、终端设备及存储介质 |
CN112799799A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 数据消费方法及装置 |
CN112861024A (zh) * | 2021-02-03 | 2021-05-28 | 北京百度网讯科技有限公司 | 确定路网矩阵的方法、装置、电子设备及存储介质 |
CN113760940A (zh) * | 2020-09-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 应用于分布式***的配额管理方法、装置、设备及介质 |
-
2019
- 2019-08-16 CN CN201910762893.6A patent/CN110458468A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736965A (zh) * | 2019-12-11 | 2020-10-02 | 西安宇视信息科技有限公司 | 任务调度方法、装置、调度服务器和机器可读存储介质 |
CN111045811A (zh) * | 2019-12-23 | 2020-04-21 | 五八有限公司 | 一种任务分配方法、装置、电子设备及存储介质 |
CN111338797A (zh) * | 2020-02-19 | 2020-06-26 | 望海康信(北京)科技股份公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
CN111338797B (zh) * | 2020-02-19 | 2023-09-05 | 望海康信(北京)科技股份公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
CN111708627A (zh) * | 2020-06-22 | 2020-09-25 | 中国平安财产保险股份有限公司 | 基于分布式调度框架的任务调度方法以及装置 |
CN111708627B (zh) * | 2020-06-22 | 2023-06-20 | 中国平安财产保险股份有限公司 | 基于分布式调度框架的任务调度方法以及装置 |
CN111949387A (zh) * | 2020-07-17 | 2020-11-17 | 上海淇馥信息技术有限公司 | 一种处理业务任务的方法、装置和电子设备 |
CN111949387B (zh) * | 2020-07-17 | 2022-08-23 | 上海淇馥信息技术有限公司 | 一种处理业务任务的方法、装置和电子设备 |
CN113760940A (zh) * | 2020-09-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 应用于分布式***的配额管理方法、装置、设备及介质 |
CN112181662A (zh) * | 2020-10-13 | 2021-01-05 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN112631805A (zh) * | 2020-12-28 | 2021-04-09 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置、终端设备及存储介质 |
CN112799799A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 数据消费方法及装置 |
CN112799799B (zh) * | 2020-12-29 | 2024-07-19 | 杭州涂鸦信息技术有限公司 | 数据消费方法及装置 |
CN112861024A (zh) * | 2021-02-03 | 2021-05-28 | 北京百度网讯科技有限公司 | 确定路网矩阵的方法、装置、电子设备及存储介质 |
CN112861024B (zh) * | 2021-02-03 | 2023-08-01 | 北京百度网讯科技有限公司 | 确定路网矩阵的方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110458468A (zh) | 一种任务处理方法、装置、电子设备及存储介质 | |
CN111741026B (zh) | 一种跨链事务请求处理方法、装置、设备以及存储介质 | |
US20140289286A1 (en) | System and method for performance tuning of garbage collection algorithms | |
CN108182111A (zh) | 任务调度***、方法和装置 | |
CN107370796B (zh) | 一种基于Hyper TF的智能学习*** | |
JPWO2008146677A1 (ja) | 仮想マシン管理装置、仮想マシン管理方法および仮想マシン管理プログラム | |
US10817327B2 (en) | Network-accessible volume creation and leasing | |
CN104981781B (zh) | 分布式计算***及操作分布式计算***的方法 | |
US20130152101A1 (en) | Preparing parallel tasks to use a synchronization register | |
CN107704310B (zh) | 一种实现容器集群管理的方法、装置和设备 | |
CN112087332B (zh) | 一种云边协同下的虚拟网络性能优化*** | |
WO2021159831A1 (zh) | 编程平台的用户代码运行方法及平台、节点、设备、介质 | |
CN109117252A (zh) | 基于容器的任务处理的方法、***及容器集群管理*** | |
CN110300188A (zh) | 数据传输***、方法和设备 | |
CN113821506A (zh) | 用于任务***的任务执行方法、装置、***、服务器和介质 | |
CN115576684A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN109284190A (zh) | 一种任务处理方法及装置 | |
CN113391925A (zh) | 云资源管理方法、***、介质、计算机设备 | |
CN107454137B (zh) | 一种在线业务按需服务的方法、装置与设备 | |
CN111343239A (zh) | 通信请求处理方法、通信方法、通信请求处理装置以及交易*** | |
Wang et al. | Improving utilization through dynamic VM resource allocation in hybrid cloud environment | |
CN115098269A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN111416860B (zh) | 基于区块链的事务处理方法、装置、电子设备和介质 | |
CN114780228A (zh) | 一种混合云资源创建方法及*** | |
CN114398410A (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 |