CN107315629A - 任务处理方法、装置及存储介质 - Google Patents

任务处理方法、装置及存储介质 Download PDF

Info

Publication number
CN107315629A
CN107315629A CN201710446658.9A CN201710446658A CN107315629A CN 107315629 A CN107315629 A CN 107315629A CN 201710446658 A CN201710446658 A CN 201710446658A CN 107315629 A CN107315629 A CN 107315629A
Authority
CN
China
Prior art keywords
task
subtask
father
queue
module
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
Application number
CN201710446658.9A
Other languages
English (en)
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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201710446658.9A priority Critical patent/CN107315629A/zh
Publication of CN107315629A publication Critical patent/CN107315629A/zh
Pending legal-status Critical Current

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本公开提供一种任务处理方法、装置及存储介质,所述方法包括:父任务执行模块:按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中;子任务执行模块:对与所述子任务执行模块对应的子任务队列中的子任务进行处理。应用本公开实施例,由于父任务执行模块可以将待处理任务拆分为多个子任务,并分别由不同子任务执行模块处理子任务,又由于处理子任务队列中子任务的子任务执行模块相互独立,则可以利用不同的子任务执行模块同时对拆分获得的不同子任务进行处理,实现子任务的并发处理,从而不仅可以实现流量削峰,还可以提高处理效率,避免由于处理时间过长导致任务堆积的现象。

Description

任务处理方法、装置及存储介质
技术领域
本申请涉及通信技术领域,尤其涉及任务处理方法、装置及存储介质。
背景技术
随着计算机技术和互联网技术的迅速发展,用户可以很容易地接入互联网,并向互联网上的服务器提交任务,服务器则可以通过执行用户提交的任务,为用户提供相应的服务。对于一个互联网产品而言,往往会被大量的用户在同一时间段使用。用户在使用互联网产品时所发出的任务请求指令,服务器通常会将任务请求指令对应的任务提交到一个抽象的队列,将任务堆积起来,然后通过FIFO(First In First Out,先进先出)和公平调度算法等调度策略,从队列中选取某个具体任务并触发执行。
在执行任务时,针对任务队列中简单的任务,可以采用一个任务执行模块进行处理,针对比较复杂的任务,需要依次调用不同的任务执行模块进行处理,直到最后一个任务执行模块处理完成,将处理后的结果反馈至任务发送方。
然而,针对比较复杂的任务,依次调用不同的任务执行模块对任务进行处理,需要消耗的时间比较长,从而会导致任务队列中出现任务堆积的现象。
发明内容
为克服相关技术中存在的问题,本公开提供了任务处理方法、装置及存储介质。
根据本公开实施例的第一方面,提供一种任务处理装置,所述装置包括父任务执行模块和至少两个子任务执行模块,所述装置中还设有父任务队列和子任务队列,父任务执行模块订阅父任务队列中的任务,每个子任务执行模块订阅相应子任务队列中的任务;
父任务执行模块,用于:按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中;
子任务执行模块,用于:对与所述子任务执行模块对应的子任务队列中的子任务进行处理。
在一个可选的实现方式中,至少包括两个父任务执行模块订阅父任务队列中的任务,不同父任务执行模块订阅父任务队列中不同类型的任务。
在一个可选的实现方式中,所述装置还包括:
入队控制模块,用于:接收到待处理任务后,根据所述待处理任务的类型,将所述待处理任务添加至与其类型对应的父任务队列中;
出队控制模块,用于:根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务。
在一个可选的实现方式中,所述子任务执行模块,还用于:
若所述子任务处理失败,启动预设的重试机制对所述子任务进行重试处理,若重试失败,则将所述处理失败的子任务添加至预设的失败消息队列。
根据本公开实施例的第二方面,提供一种任务处理方法,所述方法包括:
父任务执行模块:按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中;
子任务执行模块:对与所述子任务执行模块对应的子任务队列中的子任务进行处理。
在一个可选的实现方式中,所述预设拆分规则根据所述待处理任务的复杂度确定。
在一个可选的实现方式中,所述方法还包括:
子任务执行模块将所述子任务的处理结果以及任务标识反馈至父任务执行模块,并移除所述子任务队列中的所述子任务;
父任务执行模块将各子任务执行模块发送的携带有同一任务标识的处理结果反馈至任务发送方,并移除父任务队列中任务标识对应的待处理任务。
在一个可选的实现方式中,所述方法还包括:
入队控制模块:接收到待处理任务后,根据所述待处理任务的类型,将所述待处理任务添加至与其类型对应的父任务队列中;
出队控制模块:根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务。
在一个可选的实现方式中,所述方法还包括:
在对子任务队列中的子任务进行处理时,若所述子任务处理失败,启动预设的重试机制对所述子任务进行重试处理,若重试失败,则将所述处理失败的子任务添加至预设的失败消息队列。
根据本公开实施例的第三方面,提供一种任务处理方法,所述方法包括:
按照预设拆分规则,按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务;
将各子任务分别发送至不同的子任务队列中,以使与各所述子任务队列关联的子任务执行模块分别执行所述子任务队列中的子任务。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,由于父任务执行模块可以将待处理任务拆分为多个子任务,并分别由不同子任务执行模块处理子任务,又由于处理子任务队列中子任务的子任务执行模块相互独立,则可以利用不同的子任务执行模块同时对拆分获得的不同子任务进行处理,实现子任务的并发处理,从而不仅可以实现流量削峰,还可以提高处理效率,避免由于处理时间过长导致任务堆积的现象。
本公开实施例中,可以至少包括两个父任务执行模块订阅父任务队列中的任务,不同父任务执行模块订阅父任务队列中不同类型的任务,通过不同父任务执行模块处理父任务队列中不同类型的任务,可以增加父任务队列中任务的类型。
本公开实施例中,通过入队控制模块接收到待处理任务后,根据待处理任务的类型将待处理任务添加至与其类型对应的父任务队列中,并通过出队控制模块根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务,从而实现利用不同父任务队列存储不同类型的任务,并按照任务类型执行相应任务队列中的任务。
本公开实施例中,若所述子任务处理失败,启动预设的重试机制对子任务进行重试处理,若重试失败,则将处理失败的子任务添加至预设的失败消息队列,从而避免网络抖动等造成任务丢失的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开根据一示例性实施例示出的一种任务处理装置的框图。
图2是本公开根据一示例性实施例示出的另一种任务处理装置的框图。
图3是本公开根据一示例性实施例示出的一种任务处理方法的流程图。
图4是本公开根据一示例性实施例示出的另一种任务处理方法的流程图。
图5是本公开根据一示例性实施例示出的一种用于任务处理的装置的框图。
图6是本公开根据一示例性实施例示出的另一种用于任务处理的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在计算机和互联网等技术领域中,通常都会涉及对大量的任务进行处理的需求。以购物为例,购物平台方配置有服务器,在其服务器中配置有任务处理装置。实际应用中,存在大量的客户端同时提交任务的情况,特别是抢购等促销活动期间,客户端对服务端数据库的访问请求会突然增大,特别是对那些性价比高的畅销商品而言,操作数据库中相关记录的请求会瞬间大增,这将导致在数据库服务端产生行锁竞争和等待。当竞争非常激烈,数据库性能会急剧下降,从而影响其他记录的正常读写。
目前,可以使用任务队列的方式对大量的任务进行限流,进而保护核心服务的正常运行。一般采用先进先出的调度方式处理任务队列中的任务。在执行任务时,针对任务队列中简单的任务,可以采用一个任务执行模块进行处理,针对比较复杂的任务,需要依次调用不同的任务执行模块进行处理,直到最后一个任务执行模块处理完成,将处理后的结果反馈至任务发送方。然而,针对比较复杂的任务,依次调用不同的任务执行模块对任务进行处理,需要消耗的时间比较长,从而会导致任务队列中出现任务堆积现象。
针对相关技术中存在任务处理不合理的情况,本公开实施例提供了一种任务处理方案,通过构建分布式处理架构,能够将比较复杂的任务拆分为多个子任务,并利用并行处理的方式同时处理各个子任务,从而提高复杂任务的处理效率,进而避免任务队列中出现任务堆积的问题。接下来对本公开实施例进行详细说明。
本公开方案可以应用在流量削峰的场景中,本公开任务处理装置的实施例可以应用在各场景的服务器集群中。为了更好理解本公开的任务处理方法、装置及存储介质,本公开结合一具体场景对本实施例的任务处理方案进行说明。图1是本公开根据一示例性实施例示出的一种任务处理装置的框图,本实施例的任务处理方法可以应用于购物等电商平台方,该平台方为用户提供有客户端,用户通过客户端,可以获得电商平台方所提供的购物服务。
电商平台方配置有服务器集群,在其服务器集群中配置有任务处理装置。实际应用中,存在大量的客户端同时提交任务的情况,客户端提交的任务会到达任务处理装置。在该任务处理装置中配置有父任务执行模块集群11和子任务执行模块集群12。父任务执行模块集群11中可以包括一个或多个父任务执行模块(如111、112、113……11m)。子任务执行模块集群12中可以包括至少两个子任务执行模块(如121、122、123……12k)。所述装置中还设有父任务队列和子任务队列,父任务执行模块订阅父任务队列中的任务,以便父任务队列在监控到该任务时通知父任务执行模块。每个子任务执行模块订阅相应子任务队列中的任务,以便子任务队列在监控到该任务时通知子任务执行模块。其中,不同子任务执行模块可以对应不同子任务队列。例如,父任务执行模块预先与父任务队列建立订阅关系,订阅关系可以是父任务执行模块订阅父任务队列中指定类型任务或任意类型的任务,以便父任务队列检测到需处理父任务执行模块所订阅的任务时,父任务队列可以将该任务发送至父任务执行模块。同理,子任务执行模块可以预先与子任务队列建立订阅关系,订阅关系可以是子任务执行模块订阅子任务队列中指定类型任务或任意类型任务,在子任务队列检测到需处理子任务执行模块所订阅的任务时,子任务队列可以将该任务发送至子任务执行模块。可见,通过订阅的方式可以快速获取到任务队列中的任务,进而可以提高获取效率。
关于父任务执行模块集群中父任务执行模块的数量,父任务执行模块的数量可以根据父任务队列中任务的类型数量确定,不同父任务执行模块可以订阅父任务队列中不同类型的任务,父任务执行模块的数量可以灵活配置。其中,任务的类型可以根据任务标识、产生任务的对象、任务的处理对象等任务的相关信息确定。
关于父任务执行模块,可以配置一部分父任务执行模块分别处理父任务队列中比较复杂的任务,一部分父任务执行模块分别处理父任务队列中比较简单的任务。如果父任务执行模块为处理简单任务的模块时,可以直接将获取到的待处理任务进行处理。如果父任务执行模块为处理复杂任务的模块时,可以按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中。每个子任务执行模块用于对与所述子任务执行模块对应的子任务队列中的子任务进行处理。其中,简单任务和复杂任务可以基于是否由一个独立的父任务执行模块执行而区分。
可见,每个子任务对应发送到一个独立的子任务队列中,由于处理子任务队列中子任务的子任务执行模块相互独立,则可以利用不同的子任务执行模块同时对拆分获得的不同子任务进行处理,实现子任务的并发处理,从而可以提高处理效率,避免由于处理时间过长导致任务堆积的现象。
其中,预设拆分规则是预先设定的可以将指定类型的待处理任务拆分为至少两个子任务的规则。例如,可以将下订单的任务拆分为核实订单信息是否准确的子任务、查询账户余额是否充足的子任务、查询商品是否充足的子任务等。
在一个例子中,预设拆分规则可以根据待处理任务的复杂度确定。其中,复杂度和拆分获得的子任务的数量可以正相关,复杂度越高的待处理任务可以拆分为较多的子任务,复杂度越低的待处理任务可以拆分为较少的子任务,具体拆分规则可以灵活配置。
可以理解的是,待处理任务的复杂度可以是拆分规则的确定因素之一,还可以由其他因素确定拆分规则。例如,其他因素可以是父任务执行模块所在设备的处理能力、待处理任务的类型等等。
由上述实施例可见,由于父任务执行模块可以将待处理任务拆分为多个子任务,并分别由不同子任务执行模块处理子任务,又由于各个子任务执行模块相互独立,从而实现提高处理效率。
进一步的,子任务执行模块在执行子任务后,可以将所述子任务的处理结果以及任务标识反馈至父任务执行模块,并移除所述子任务队列中的所述子任务。父任务执行模块可以将各子任务执行模块发送的携带有同一任务标识的处理结果反馈至任务发送方,并移除父任务队列中任务标识对应的待处理任务。
可见,主任务队列提供了持久性存储的功能,只有在同一任务标识的所有子任务都存在处理结果后,才移除父任务队列中任务标识对应的待处理任务,避免父任务队列中任务丢失。
实际应用中,服务端可能接收到多种类型的待处理任务,有些待处理任务比较重要(优先级高),有些待处理任务相对没那么重要(优先级低),如果将所有类型的待处理任务放到同一个任务队列中,且均采用先进先出原则进行处理,则可能耽误某些重要/核心的待处理任务,鉴于此,本公开还提供一个可选的实施例,在该实施例中,所述装置不仅包括父任务执行模块和至少两个子任务执行模块,父任务执行模块订阅父任务队列中的任务,每个子任务执行模块订阅相应子任务队列中的任务,所述装置还包括:
入队控制模块13,用于:接收到待处理任务后,根据所述待处理任务的类型,将所述待处理任务添加至与其类型对应的父任务队列中。
出队控制模块14,用于:根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务。
如图2所示,图2是本公开根据一示例性实施例示出的另一种任务处理装置的框图。在该架构中,作为其中一种实现手段,入队控制模块13、父任务队列(1至m)、出队控制模块14、父任务执行模块(1至p)可以设置在同一个服务器中,子任务队列1和子任务执行模块1可以设置在同一个服务器中,子任务队列q和子任务执行模块q可以设置在同一个服务器中。
其中,待处理任务可以是任务发送方发送的任务,任务发送方可以是客户端等产生任务的一方。在接收到待处理任务后,可以按照不同的待处理任务添加至与其类型对应的父任务队列中。相同或相近类型的待处理任务可以划分到同一个父任务队列中,或者相同优先级别的不同类型的待处理任务可以划分到同一父任务队列中。
预设的调度策略是预先设置的用于筛选出父任务队列的策略,在一个例子中,可以根据父任务队列对应的类型筛选出优先级高的类型对应的父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务,实现重要的任务优先执行。可以理解的是,待处理任务的类型是筛选父任务队列的因素之一,还可以包含其他筛选因素,在此不一一赘述。
在一个可选的实现方式中,为了避免网络抖动等造成任务丢失的问题,本公开还预设了一种失败消息队列,通过失败消息队列存储处理失败的任务。具体的,所述子任务执行模块,还用于:若所述子任务处理失败,启动预设的重试机制对所述子任务进行重试处理,若重试失败,则将所述处理失败的子任务添加至预设的失败消息队列。
本实施例中,在任务执行后,执行结果存在成功或失败两种结果。若执行成功,则该子任务完成处理;若执行失败,则该子任务处理失败。若子任务处理失败,启动预设的重试机制对所述子任务进行重试处理。其中,预设的重新机制可以是立即重试,也可以是间隔预设时间后重试。
在实际应用中,也可能存在子任务持续了很多次执行后,该子任务仍然执行不成功的情况。针对此种情况,本实施例中,若处理失败的任务的失败次数或重试次数达到预设次数阈值(即重试失败),可以将处理失败的子任务添加至预设的失败消息队列。其中,预设次数阈值可以是3次或5次等。管理人员可以查看失败消息队列中的子任务,进而解决导致失败的问题。
进一步的,在将处理失败的子任务添加至预设的失败消息队列后,可以将处理失败的子任务从子任务队列中移除,并反馈处理结果至父任务执行模块,由父任务执行模块通过入队控制模块将执行结果反馈至任务发送方。
可以理解的是,如果父任务执行模块为不需要拆分待处理任务的模块,则父任务执行模块,还用于:若所述待处理任务处理失败,启动预设的重试机制对所述待处理任务进行重试处理,若重试失败,则将所述处理失败的待处理任务添加至预设的失败消息队列。
以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
与前述任务处理装置的实施例相对应,本公开还提供了任务处理方法及存储介质的实施例。
如图3所示,图3是本公开根据一示例性实施例示出的一种任务处理方法的流程图,该方法包括以下步骤:
在步骤301中,父任务执行模块:按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中。
在步骤302中,子任务执行模块:对与所述子任务执行模块对应的子任务队列中的子任务进行处理。
由上述实施例可见,由于父任务执行模块可以将待处理任务拆分为多个子任务,并分别由不同子任务执行模块处理子任务,又由于处理子任务队列中子任务的子任务执行模块相互独立,则可以利用不同的子任务执行模块同时对拆分获得的不同子任务进行处理,实现子任务的并发处理,从而可以提高处理效率,避免由于处理时间过长导致任务堆积的现象。
在一个可选的实现方式中,所述预设拆分规则根据所述待处理任务的复杂度确定。
在一个可选的实现方式中,所述方法还包括:
子任务执行模块将所述子任务的处理结果以及任务标识反馈至父任务执行模块,并移除所述子任务队列中的所述子任务。
父任务执行模块将各子任务执行模块发送的携带有同一任务标识的处理结果反馈至任务发送方,并移除父任务队列中任务标识对应的待处理任务。
由上述实施例可见,主任务队列提供了持久性存储的功能,只有在同一任务标识的所有子任务都存在处理结果后,才移除父任务队列中任务标识对应的待处理任务,避免父任务队列中任务丢失。
在一个可选的实现方式中,所述方法还包括:
入队控制模块:接收到待处理任务后,根据所述待处理任务的类型,将所述待处理任务添加至与其类型对应的父任务队列中。
出队控制模块:根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务。
由上述实施例可见,通过入队控制模块接收到待处理任务后,根据待处理任务的类型将待处理任务添加至与其类型对应的父任务队列中,并通过出队控制模块根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务,从而实现利用不同父任务队列存储不同类型的任务,并按照任务类型执行相应任务队列中的任务。
在一个可选的实现方式中,所述方法还包括:
在对子任务队列中的子任务进行处理时,若所述子任务处理失败,启动预设的重试机制对所述子任务进行重试处理,若重试失败,则将所述处理失败的子任务添加至预设的失败消息队列。
由上述实施例可见,若所述子任务处理失败,启动预设的重试机制对子任务进行重试处理,若重试失败,则将处理失败的子任务添加至预设的失败消息队列,从而避免网络抖动等造成任务丢失的问题。
如图4所示,图4是本公开根据一示例性实施例示出的另一种任务处理方法的流程图,该方法包括以下步骤:
在步骤401中,按照预设拆分规则,按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务。
在步骤402中,将各子任务分别发送至不同的子任务队列中,以使与各所述子任务队列关联的子任务执行模块分别执行所述子任务队列中的子任务。
相应的,本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本公开可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
如图5所示,图5是本公开根据一示例性实施例示出的一种用于任务处理的装置500的框图。
例如,装置500可以被提供为服务器。参照图5,装置500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理部件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述任务处理方法。
装置500还可以包括一个电源组件526被配置为执行装置500的电源管理,一个有线或无线网络接口550被配置为将装置500连接到网络,和一个输入输出(I/O)接口558。装置500可以操作基于存储在存储器532的操作系统。
其中,当所述存储器532中的指令由所述处理组件522执行时,使得装置500能够执行一种任务处理方法,包括:
父任务执行模块:按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中。
子任务执行模块:对与所述子任务执行模块对应的子任务队列中的子任务进行处理。
如图6所示,图6是本公开根据一示例性实施例示出的另一种用于任务处理的装置600的框图。
例如,装置600可以被提供为服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理部件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述任务处理方法。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作系统。
其中,当所述存储器632中的指令由所述处理组件622执行时,使得装置600能够执行一种任务处理方法,包括:
按照预设拆分规则,按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务。
将各子任务分别发送至不同的子任务队列中,以使与各所述子任务队列关联的子任务执行模块分别执行所述子任务队列中的子任务。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

Claims (11)

1.一种任务处理装置,其特征在于,所述装置包括父任务执行模块和至少两个子任务执行模块,所述装置中还设有父任务队列和子任务队列,父任务执行模块订阅父任务队列中的任务,每个子任务执行模块订阅相应子任务队列中的任务;
父任务执行模块,用于:按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中;
子任务执行模块,用于:对与所述子任务执行模块对应的子任务队列中的子任务进行处理。
2.根据权利要求1所述的装置,其特征在于,至少包括两个父任务执行模块订阅父任务队列中的任务,不同父任务执行模块订阅父任务队列中不同类型的任务。
3.根据权利要求1所述的装置,其特征在于,所述装置还包括:
入队控制模块,用于:接收到待处理任务后,根据所述待处理任务的类型,将所述待处理任务添加至与其类型对应的父任务队列中;
出队控制模块,用于:根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务。
4.根据权利要求1至3任一项所述的装置,其特征在于,所述子任务执行模块,还用于:
若所述子任务处理失败,启动预设的重试机制对所述子任务进行重试处理,若重试失败,则将所述处理失败的子任务添加至预设的失败消息队列。
5.一种任务处理方法,其特征在于,所述方法包括:
父任务执行模块:按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务,并将各子任务分别发送至不同的子任务队列中;
子任务执行模块:对与所述子任务执行模块对应的子任务队列中的子任务进行处理。
6.根据权利要求5所述的方法,其特征在于,所述预设拆分规则根据所述待处理任务的复杂度确定。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
子任务执行模块将所述子任务的处理结果以及任务标识反馈至父任务执行模块,并移除所述子任务队列中的所述子任务;
父任务执行模块将各子任务执行模块发送的携带有同一任务标识的处理结果反馈至任务发送方,并移除父任务队列中任务标识对应的待处理任务。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
入队控制模块:接收到待处理任务后,根据所述待处理任务的类型,将所述待处理任务添加至与其类型对应的父任务队列中;
出队控制模块:根据预设的调度策略以及父任务队列对应的类型,筛选出一个父任务队列,以便父任务执行模块执行筛选出的父任务队列中的任务。
9.根据权利要求5至8任一项所述的方法,其特征在于,所述方法还包括:
在对子任务队列中的子任务进行处理时,若所述子任务处理失败,启动预设的重试机制对所述子任务进行重试处理,若重试失败,则将所述处理失败的子任务添加至预设的失败消息队列。
10.一种任务处理方法,其特征在于,所述方法包括:
按照预设拆分规则,按照预设拆分规则,将从父任务队列中获取到的待处理任务拆分为至少两个子任务;
将各子任务分别发送至不同的子任务队列中,以使与各所述子任务队列关联的子任务执行模块分别执行所述子任务队列中的子任务。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求5至10任一项所述方法的步骤。
CN201710446658.9A 2017-06-14 2017-06-14 任务处理方法、装置及存储介质 Pending CN107315629A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710446658.9A CN107315629A (zh) 2017-06-14 2017-06-14 任务处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710446658.9A CN107315629A (zh) 2017-06-14 2017-06-14 任务处理方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN107315629A true CN107315629A (zh) 2017-11-03

Family

ID=60183727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710446658.9A Pending CN107315629A (zh) 2017-06-14 2017-06-14 任务处理方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN107315629A (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977275A (zh) * 2017-12-05 2018-05-01 腾讯科技(深圳)有限公司 基于消息队列的任务处理方法及相关设备
CN108009028A (zh) * 2017-11-29 2018-05-08 中国平安人寿保险股份有限公司 消息处理方法、装置、设备及计算机可读存储介质
CN108170526A (zh) * 2017-12-06 2018-06-15 北京像素软件科技股份有限公司 负载能力优化方法、装置、服务器及可读存储介质
CN108804215A (zh) * 2018-06-12 2018-11-13 北京奇艺世纪科技有限公司 一种任务处理方法、装置以及电子设备
CN109343941A (zh) * 2018-08-14 2019-02-15 阿里巴巴集团控股有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN109933422A (zh) * 2017-12-19 2019-06-25 北京京东尚科信息技术有限公司 处理任务的方法、装置、介质及电子设备
CN110851253A (zh) * 2019-11-06 2020-02-28 万达信息股份有限公司 一种远程运维的方法、系统、存储介质及电子设备
CN110968406A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 处理任务的方法、装置、存储介质和处理器
CN110990143A (zh) * 2019-12-13 2020-04-10 江苏满运软件科技有限公司 任务处理方法、系统、电子设备和存储介质
CN111078423A (zh) * 2019-11-21 2020-04-28 京东数字科技控股有限公司 数据处理方法、装置、系统、计算机可读存储介质
CN111813554A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种任务调度处理方法、装置及电子设备和存储介质
CN111950847A (zh) * 2020-07-08 2020-11-17 泰康保险集团股份有限公司 一种任务分配方法和装置
CN112099935A (zh) * 2020-09-25 2020-12-18 北京奇艺世纪科技有限公司 一种任务处理方法及装置
CN112486638A (zh) * 2019-09-11 2021-03-12 百度时代网络技术(北京)有限公司 用于执行处理任务的方法、装置、设备和存储介质
CN112561326A (zh) * 2020-12-15 2021-03-26 青岛海尔科技有限公司 任务执行方法及装置、存储介质、电子装置
CN113127443A (zh) * 2020-01-14 2021-07-16 北京京东振世信息技术有限公司 一种更新缓存数据的方法和装置
CN113342460A (zh) * 2021-05-11 2021-09-03 暨南大学 一种云数据中心面对突发负载的能耗控制方法
CN113360263A (zh) * 2021-06-08 2021-09-07 展讯通信(天津)有限公司 一种任务处理方法、系统及相关设备
CN113392252A (zh) * 2021-06-01 2021-09-14 上海徐毓智能科技有限公司 数据处理方法和装置
CN113434307A (zh) * 2021-06-22 2021-09-24 北京沃东天骏信息技术有限公司 任务发送的处理、任务处理的方法、装置、系统及设备
CN114493373A (zh) * 2022-03-31 2022-05-13 中国科学院空天信息创新研究院 一种遥感卫星处理系统中应急任务处理方法及装置
CN116107724A (zh) * 2023-04-04 2023-05-12 山东浪潮科学研究院有限公司 一种ai加速核调度管理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546946A (zh) * 2012-01-05 2012-07-04 中国联合网络通信集团有限公司 移动终端处理任务的方法及装置
CN104793992A (zh) * 2015-04-21 2015-07-22 浙江大学 一种基于任务分解的并行任务处理方法
US20160321104A1 (en) * 2014-04-03 2016-11-03 Tencent Technology (Shenzhen) Company Limited Method and apparatus for scheduling concurrent task
CN106484524A (zh) * 2015-08-28 2017-03-08 阿里巴巴集团控股有限公司 一种任务处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546946A (zh) * 2012-01-05 2012-07-04 中国联合网络通信集团有限公司 移动终端处理任务的方法及装置
US20160321104A1 (en) * 2014-04-03 2016-11-03 Tencent Technology (Shenzhen) Company Limited Method and apparatus for scheduling concurrent task
CN104793992A (zh) * 2015-04-21 2015-07-22 浙江大学 一种基于任务分解的并行任务处理方法
CN106484524A (zh) * 2015-08-28 2017-03-08 阿里巴巴集团控股有限公司 一种任务处理方法及装置

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009028A (zh) * 2017-11-29 2018-05-08 中国平安人寿保险股份有限公司 消息处理方法、装置、设备及计算机可读存储介质
CN107977275B (zh) * 2017-12-05 2022-10-21 腾讯科技(深圳)有限公司 基于消息队列的任务处理方法及相关设备
CN107977275A (zh) * 2017-12-05 2018-05-01 腾讯科技(深圳)有限公司 基于消息队列的任务处理方法及相关设备
CN108170526A (zh) * 2017-12-06 2018-06-15 北京像素软件科技股份有限公司 负载能力优化方法、装置、服务器及可读存储介质
CN109933422A (zh) * 2017-12-19 2019-06-25 北京京东尚科信息技术有限公司 处理任务的方法、装置、介质及电子设备
CN108804215A (zh) * 2018-06-12 2018-11-13 北京奇艺世纪科技有限公司 一种任务处理方法、装置以及电子设备
CN108804215B (zh) * 2018-06-12 2021-06-22 北京奇艺世纪科技有限公司 一种任务处理方法、装置以及电子设备
CN109343941A (zh) * 2018-08-14 2019-02-15 阿里巴巴集团控股有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN109343941B (zh) * 2018-08-14 2023-02-21 创新先进技术有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN110968406A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 处理任务的方法、装置、存储介质和处理器
CN110968406B (zh) * 2018-09-30 2023-04-07 北京国双科技有限公司 处理任务的方法、装置、存储介质和处理器
CN112486638A (zh) * 2019-09-11 2021-03-12 百度时代网络技术(北京)有限公司 用于执行处理任务的方法、装置、设备和存储介质
CN110851253A (zh) * 2019-11-06 2020-02-28 万达信息股份有限公司 一种远程运维的方法、系统、存储介质及电子设备
CN111078423A (zh) * 2019-11-21 2020-04-28 京东数字科技控股有限公司 数据处理方法、装置、系统、计算机可读存储介质
CN110990143A (zh) * 2019-12-13 2020-04-10 江苏满运软件科技有限公司 任务处理方法、系统、电子设备和存储介质
CN110990143B (zh) * 2019-12-13 2022-09-02 江苏满运软件科技有限公司 任务处理方法、系统、电子设备和存储介质
CN113127443A (zh) * 2020-01-14 2021-07-16 北京京东振世信息技术有限公司 一种更新缓存数据的方法和装置
CN113127443B (zh) * 2020-01-14 2024-06-18 北京京东振世信息技术有限公司 一种更新缓存数据的方法和装置
CN111950847A (zh) * 2020-07-08 2020-11-17 泰康保险集团股份有限公司 一种任务分配方法和装置
CN111813554A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种任务调度处理方法、装置及电子设备和存储介质
CN112099935A (zh) * 2020-09-25 2020-12-18 北京奇艺世纪科技有限公司 一种任务处理方法及装置
CN112099935B (zh) * 2020-09-25 2023-09-01 北京奇艺世纪科技有限公司 一种任务处理方法及装置
CN112561326A (zh) * 2020-12-15 2021-03-26 青岛海尔科技有限公司 任务执行方法及装置、存储介质、电子装置
CN113342460A (zh) * 2021-05-11 2021-09-03 暨南大学 一种云数据中心面对突发负载的能耗控制方法
CN113392252A (zh) * 2021-06-01 2021-09-14 上海徐毓智能科技有限公司 数据处理方法和装置
CN113360263B (zh) * 2021-06-08 2023-01-31 展讯通信(天津)有限公司 一种任务处理方法、系统及相关设备
CN113360263A (zh) * 2021-06-08 2021-09-07 展讯通信(天津)有限公司 一种任务处理方法、系统及相关设备
CN113434307A (zh) * 2021-06-22 2021-09-24 北京沃东天骏信息技术有限公司 任务发送的处理、任务处理的方法、装置、系统及设备
CN114493373A (zh) * 2022-03-31 2022-05-13 中国科学院空天信息创新研究院 一种遥感卫星处理系统中应急任务处理方法及装置
CN114493373B (zh) * 2022-03-31 2022-07-12 中国科学院空天信息创新研究院 一种遥感卫星处理系统中应急任务处理方法及装置
CN116107724A (zh) * 2023-04-04 2023-05-12 山东浪潮科学研究院有限公司 一种ai加速核调度管理方法、装置、设备及存储介质
CN116107724B (zh) * 2023-04-04 2023-07-18 山东浪潮科学研究院有限公司 一种ai加速核调度管理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107315629A (zh) 任务处理方法、装置及存储介质
US11861405B2 (en) Multi-cluster container orchestration
US9898522B2 (en) Distributed storage of aggregated data
US10402424B1 (en) Dynamic tree determination for data processing
JP6700266B2 (ja) 分散環境におけるサービスアドレッシング
US8732118B1 (en) Distributed performance of data aggregation operations
US7680848B2 (en) Reliable and scalable multi-tenant asynchronous processing
CN109814998A (zh) 一种多进程任务调度的方法及装置
US20200218579A1 (en) Selecting a cloud service provider
US20110179058A1 (en) Enabling workflow awareness within a business process management (bpm) system
TWI244030B (en) Information processing system, information processing device, distributed information processing method and computer readable recording medium
US20130297557A1 (en) Column based data transfer in extract, transform and load (etl) systems
US20130060834A1 (en) Distributed messaging system connectivity and resource management
US20150095917A1 (en) Distributed uima cluster computing (ducc) facility
US11303509B2 (en) Resource allocation to reduce correlated failures
CN105979007A (zh) 加速资源处理方法、装置及网络功能虚拟化系统
JP4141875B2 (ja) リカバリ処理方法及びその実施システム並びにその処理プログラム
US20190286629A1 (en) Method for processing transactions using blockchain network, and transaction management server using the same
US7716431B2 (en) Analysis technique of execution states in computer system
CN115114359B (zh) 用户数据处理方法及装置
US8914517B1 (en) Method and system for predictive load balancing
US7606906B2 (en) Bundling and sending work units to a server based on a weighted cost
Jaiman et al. TailX: Scheduling heterogeneous multiget queries to improve tail latencies in key-value stores
CN112953993A (zh) 资源调度方法、设备、网络系统及存储介质
WO2013039796A2 (en) Scale-out system to acquire event data

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