CN108228349A - 用于处理任务的方法、系统和存储介质 - Google Patents

用于处理任务的方法、系统和存储介质 Download PDF

Info

Publication number
CN108228349A
CN108228349A CN201711441511.7A CN201711441511A CN108228349A CN 108228349 A CN108228349 A CN 108228349A CN 201711441511 A CN201711441511 A CN 201711441511A CN 108228349 A CN108228349 A CN 108228349A
Authority
CN
China
Prior art keywords
task
calculate node
center
bit stream
mission bit
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
CN201711441511.7A
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 Sensetime Technology Development Co Ltd
Original Assignee
Beijing Sensetime Technology Development 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 Sensetime Technology Development Co Ltd filed Critical Beijing Sensetime Technology Development Co Ltd
Priority to CN201711441511.7A priority Critical patent/CN108228349A/zh
Publication of CN108228349A publication Critical patent/CN108228349A/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/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
    • 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/5083Techniques for rebalancing the load in a distributed system

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

用于处理任务的方法、系统和存储介质
技术领域
本公开涉及计算机技术,尤其是一种用于处理任务的方法、系统和存储介质。
背景技术
在任务处理系统中,包括任务中心和至少一个计算节点,其中,任务中心维护待处理任务列表并负责列表中待处理任务的调度,例如,任务中心可以基于实时的负载检查等方式进行计算任务的分配。计算节点可以接收任务中心为其分配的任务并进行相应处理。
发明内容
本公开实施例提供一种用于处理任务的方法及系统、电子设备和存储介质的技术方案。
本公开实施例提供一种用于处理任务的方法,包括:
计算节点根据当前自身运行状态,确定是否有空余计算能力;
若确定有空余计算能力,所述计算节点向任务中心发送任务处理申请;
所述计算节点接收所述任务中心响应于所述任务处理申请发送的第一任务的任务信息。
在一种可选方式中,所述计算节点根据当前自身运行状态,确定是否有空余计算能力,包括:
所述计算节点判断当前处理的第二任务是否执行完毕,和/或
所述计算节点判断当前是否有空闲线程或空闲进程。
在一种可选方式中,在所述计算节点判断当前处理的第二任务是否执行完毕之后,还包括:
所述计算节点判断所述第二任务是否处理成功;
若所述第二任务未处理成功,所述计算节点将所述第二任务的任务信息发送至所述任务中心。
在一种可选方式中,在所述计算节点将所述第二任务的任务信息发送至所述任务中心之前,还包括:
所述计算节点更新所述第二任务的任务信息中包括的任务处理失败计数值;
所述方法还包括:
所述任务中心根据所述计算节点发送的所述第二任务的任务信息中包括的任务处理失败计数值,确定所述第二任务的处理策略。
在一种可选方式中,所述任务中心根据所述计算节点发送的所述第二任务的任务信息中包括的任务处理失败计数值,确定所述第二任务的处理策略,包括:
若所述第二任务的任务处理失败计数值达到失败次数阈值,所述任务中心将所述第二任务的任务信息添加到失败任务队列中;和/或
若所述第二任务的任务处理失败计数值未达到所述失败次数阈值,所述任务中心将所述第二任务的任务信息添加到待处理任务队列中。
在一种可选方式中,还包括:
所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,从所述至少一个待处理任务中确定所述第一任务。
在一种可选方式中,所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,从所述至少一个待处理任务中确定所述第一任务,包括:
所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,确定所述至少一个待处理任务在待处理任务队列中的排列顺序;
所述任务中心将所述待处理任务队列中的首个任务确定为所述第一任务。
在一种可选方式中,所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,确定所述至少一个待处理任务在待处理任务队列中的排列顺序,包括:
所述任务中心按照任务优先级从高至低的顺序在所述待处理任务队列中依次排列所述至少一个待处理任务;和/或
所述任务中心根据接收时间戳的先后在所述待处理任务队列中依次排列所述至少一个待处理任务。
在一种可选方式中,所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,确定所述至少一个待处理任务在待处理任务队列中的排列顺序,还包括:
若所述至少一个待处理任务包括具有相同任务优先级的第三任务和第四任务,按照所述第第三任务和所述第四任务的接收时间戳的先后确定所述第三任务和所述第四任务的排列顺序。
在一种可选方式中,还包括:
所述计算节点根据所述第一任务的任务信息,处理所述第一任务;
若所述计算节点成功处理所述第一任务,所述计算节点向所述第一任务的任务发送方发送任务处理成功消息。
本公开实施例提供一种用于处理任务的系统,包括任务中心和至少一个计算节点;其中:
所述计算节点,用于根据当前自身运行状态,确定是否有空余计算能力,若确定有空余计算能力,则向任务中心发起任务处理申请;以及,接收所述任务中心响应于所述任务处理申请发送的第一任务的任务信息。
在一种可选方式中,所述计算节点具体用于:判断当前处理的第二任务是否执行完毕,和/或,判断当前是否有空闲线程或空闲进程。
在一种可选方式中,所述计算节点还用于:判断所述第二任务是否处理成功;若所述第二任务未处理成功,则将所述第二任务的任务信息发送至所述任务中心。
在一种可选方式中,所述计算节点还用于:更新所述第二任务的任务信息中包括的任务处理失败计数值;所述任务中心用于:根据所述计算节点发送的所述第二任务的任务信息中包括的任务处理失败计数值,确定所述第二任务的处理策略。
在一种可选方式中,所述任务中心具体用于:若所述第二任务的任务处理失败计数值达到失败次数阈值,则将所述第二任务的任务信息添加到失败任务队列中;和/或,若所述第二任务的任务处理失败计数值未达到所述失败次数阈值,则将所述第二任务的任务信息添加到待处理任务队列中。
在一种可选方式中,所述任务中心还用于:根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,从所述至少一个待处理任务中确定所述第一任务。
在一种可选方式中,所述任务中心具体用于:根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,确定所述至少一个待处理任务在待处理任务队列中的排列顺序;将所述待处理任务队列中的首个任务确定为所述第一任务。
在一种可选方式中,所述任务中心具体用于:按照任务优先级从高至低的顺序在所述待处理任务队列中依次排列所述至少一个待处理任务;和/或,根据接收时间戳的先后在所述待处理任务队列中依次排列所述至少一个待处理任务。
在一种可选方式中,所述任务中心具体用于:若所述至少一个待处理任务包括具有相同任务优先级的第三任务和第四任务,按照所述第三任务和所述第四任务的接收时间戳的先后确定所述第三任务和所述第四任务的排列顺序。
在一种可选方式中,所述计算节点还用于:根据所述第一任务的任务信息,处理所述第一任务;以及,若成功处理所述第一任务,向所述第一任务的任务发送方发送任务处理成功消息。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被至少一个处理器执行时实现上述任一项所述方法。
本公开实施例提供一种任务处理系统,包括存储器和至少一个处理器,所述存储器用于存储计算机可读指令,其特征在于,所述至少一个处理器执行所述计算机可读指令时实现上述任一项所述方法。
基于本公开上述实施例提供的用于处理任务的方法,不同于现有技术中计算节点被动地被分配任务的方式,通过改变计算资源分发策略,基于计算节点进行申请,而不是基于任务发送方去分发。由于每个计算节点根据自身负载情况,通过主动去任务中心申请计算任务,这样就避免了任务发送方去频繁获取计算节点的负载情况带来的延迟。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开提供的用于处理任务的方法应用场景示例的示意图。
图2为本公开提供的用于处理任务的方法的实施例的流程图。
图3为本公开提供的用于处理任务的方法的实施例的另一流程图。
图4为本公开提供的用于处理任务的系统的实施例的结构示意图。
图5为本公开提供的用于处理任务的系统的实施例的另一结构示意图。
图6为本公开提供的电子设备的实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
参见图1,为本公开实施例中用于处理任务的方法的技术方案的应用场景示例的示意图。该场景可以包括任务发送方10、任务中心20以及多个计算节点30。任务发送方10可以是客户端设备(例如个人电脑、ipad、手机、等),也可以是一个局域网内的服务器,或者连接多个客户端设备的网关设备等。任务发送方10可以提出任务请求,将任务相关信息发送至任务中心20。任务中心20可以是位于网络侧的消息缓存设备或任务缓存设备,例如可以是一台服务器或虚拟机等等。任务中心20是任务发送方10和计算节点30之间的桥梁,一方面接收任务发送方10的任务提交,另一方面根据计算节点30的任务申请,从待处理任务队列中确定待处理的任务并发送给计算节点30。计算节点30可以是具有计算能力的服务器或者是虚拟设备。计算节点30数目可以根据实际应用需求确定。与其他方案中由任务中心进行任务的分配与调度且计算节点被动接收任务中心分配的任务的方式相比,本公开实施例中的各个计算节点30可以根据自身运行情况主动向任务中心20申请任务,从而能够避免任务中心对于各个计算节点的当前状态信息的缺失而导致的任务分配不均或者由于频繁获取计算节点的负载情况带来的延迟等问题,有利于提高计算节点的计算资源的利用率并实现多个计算节点的负载均衡。
图2为本公开提供的用于处理任务的方法的实施例的示意性流程图。该实施例方法包括S201-S203。
S201:计算节点根据当前自身运行状态,确定是否有空余计算能力。
计算节点可以是具有计算能力的设备或者是虚拟机。有别于其他方案中计算节点被动接受任务中心分配的任务的方式,本公开实施例中,计算节点可以根据自身运行情况,在自身具有空余计算能力的情况下,主动申请任务处理。
计算节点可以通过多种方式确定自身是否具有空余计算能力。在一些可选实施例中,计算节点可以通过判断当前处理任务(以下称为第二任务)是否执行完毕来确定是否有空余计算能力,其中,当前处理任务可以是计算节点正在处理的任务,并且当前处理任务的数量可以为一个或多个。可选地,如果该计算节点具有多个正在处理的任务,则可以周期性或触发性地判断这多个正在处理的任务中是否有执行完毕的任务。在一个例子中,如果计算节点确定有执行完毕的任务,则可以确定自身有空余计算能力,而如果计算节点确定没有执行完毕的任务,则可以确定自身没有空余计算能力。
作为一个可选例子,计算节点对第二任务执行完毕之后,还可以确定是否成功处理第二任务。如果计算节点未能成功处理第二任务,即处理第二任务失败,则可以确定是否重新执行第二任务。可选地,如果确定不重新执行第二任务,则可以确定自身具有空余计算能力。
作为一个例子,如果计算节点处理第二任务失败,则计算节点还可以向任务中心发送第二任务的任务信息,可选地,任务中心在接收到第二任务的任务信息之后,可以将第二任务重新添加到待处理任务列表。可选地,第二任务的任务信息可以包含有处理失败次数,此时,计算节点在向任务中心发送第二任务的任务信息之前,可以更新第二任务的任务信息中的处理失败次数,例如,将处理失败次数加1,相应地,任务中心在接收到计算节点发送的第二任务的任务信息之后,可以根据第二任务的任务信息中的处理失败次数,确定第二任务的处理策略,例如,如果第二任务的处理失败次数未达到预设阈值,则可以将第二任务添加到待处理任务列表,而如果第二任务的处理失败次数达到预设阈值,则可以将第二任务添加到失败任务列表,以使得计算节点不再继续执行第二任务,但本公开实施例不限于此。
在一些可选实施例中,计算节点可以判断当前线程或当前进程是否执行完毕,例如,可以判断计算节点的一个或多个运行的线程中是否有执行完毕的线程,或者,可以判断计算节点的一个或多个运行的进程中是否有执行完毕的进程。在一个例子中,如果计算节点有执行完毕的线程和/或进程,则可以确定自身具有空余计算能力,否则,则可以确定自身不具有空余计算能力。
计算节点可以通过进程或线程实现对任务的执行。线程也可以被称为轻量级进程(Light Weight Process,LWP),是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。可选地,进程是线程的容器。
在一些可选实施例中,计算节点可以判断自身是否有空闲线程或空闲进程。可选地,如果计算节点具有空闲线程和/或空闲进程,则可以确定自身有空余计算能力。否则,则计算节点可以认为自身不具有空余计算能力。
可选地,计算节点可以通过上述方式中的任意一种或至少两种的任意组合确定自身是否有空余计算能力,或者,计算节点也可以通过其他方式确定自身是否有空余计算能力,本公开实施例对此不做限定。
S202:若计算节点确定有空余计算能力,则向任务中心发送任务处理申请。
任务中心可以用于缓存任务发送方提交的任务信息,例如,任务中心可以以待处理任务队列的方式存储任务信息,其中,该待处理任务队列中可以包含至少一个待处理任务和/或其任务信息。任务中心是任务发送方和计算节点之间的桥梁,一方面接收任务发送方的任务提交,一方面根据计算节点的任务申请,从待处理任务队列中确定出待处理的任务并发送给计算节点。
当计算节点确定自身具有空余计算能力时,则向任务中心主动发起任务处理申请,而不是等待任务中心或其他设备分配任务。可选地,计算节点可以向任务中心发送任务处理申请或任务请求消息或任务传送指示等,本公开实施例可以对计算节点申请任务的具体实现不作限定。
S203:计算节点接收任务中心返回的响应于任务处理申请的第一任务的任务信息。
任务中心在接收到计算节点的任务处理申请之后,可以根据计算节点的任务处理申请,从至少一个待处理任务中确定第一任务,并向计算节点发送第一任务的任务信息。可选地,计算节点可以根据接收到的第一任务的任务信息,执行第一任务。
在一种可选方式中,任务中心可以具有待处理任务队列,并且从待处理任务队列包括的至少一个待处理任务中确定第一任务。可选地,待处理任务队列是一个先进先出队列,例如,待处理任务队列中的任务是按照各个任务进入队列的时间顺序排序的。可选地,待处理任务队列还可以是根据任务优先级进行排序的,或者是结合任务优先级和任务添加到队列的时间排序的,或者也可以是以其他方式进行排序的,本公开实施例对此不做限定。
在一种可选方式中,上述方法还包括步骤:任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,从至少一个待处理任务中确定第一任务。例如,任务中心可以将接收时间戳对应的接收时间最早的任务确定为第一任务,或者,任务中心可以将任务优先级最高的任务确定为第一任务,等等,任务中心可以以其他预设的固定规则从至少一个待处理任务中确定第一任务,本公开实施例对任务中心确定第一任务的方式不作限定。
在一种可选方式中,任务中心可以将待处理任务队列中排在最前面的任务(即待处理任务队列中的首个任务)确定为第一任务。此时,任务中心可以不具有任务调度决策能力,只是每次在接收到计算节点的请求时,响应计算节点的请求将待处理任务队列中排在最前面的任务发送给计算节点。可选地,任务中心也可以将待处理任务队列中的预设规定位置处的任务发送给计算节点,本公开实施例对该第一任务在待处理任务队列中的具体位置不作限定。
可选地,任务中心可以根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,确定至少一个待处理任务在待处理任务队列中的排列顺序。作为一个例子,任务中心可以按照任务优先级从高至低的顺序依次排列所述至少一个待处理任务。作为另一个例子,任务中心可以根据接收时间戳的先后依次排列所述至少一个待处理任务,例如,将接收时间戳对应的接收时间较早的任务排在接收时间戳对应的接收时间较晚的任务之前。作为另一个例子,还可以结合任务优先级和接收时间戳排列至少一个待处理任务。例如,可以按照任务优先级从高到低的顺序依次排列至少一个待处理任务,其中,对于具有相同的任务优先级或没有任务优先级的两个或更多个任务,则可以按照任务的接收时间戳排列这两个或更多个任务。例如,若至少一个待处理任务包括具有相同任务优先级的第三任务和第四任务,按照第三任务和第四任务的接收时间戳的先后确定第三任务和第四任务的排列顺序。再例如,可以按照任务的接收时间戳排列至少一个待处理任务,其中,对于接收时间戳相同的两个或更多个任务,可以按照任务优先级排列这两个或更多个任务,等等,本公开实施例对此不做限定。
由此,任务中心根据任务进入时间和/或优先级维护任务的顺序,并在计算节点申请任务时,将待处理任务队列的首个任务分发下去,解决了不同任务的优先级问题。任务发送方和计算节点间是异步进行的,解耦合了计算节点和任务发送方的关系,进一步加速计算节点对任务的获取和计算。
在计算节点接收到第一任务的任务信息之后,即可根据第一任务的任务信息处理第一任务,例如进行计算等数据处理。
可选地,若计算节点成功处理所述第一任务,计算节点可向第一任务的任务发送方发送任务处理成功消息。例如,计算节点可以通过任务发送方的回调接口返回任务处理成功消息,但本公开实施例对该任务处理成功消息的发送方式不做限定。
可选地,若计算节点未能成功处理第一任务,即处理第一任务失败,则可以记录错误信息和/或将第一任务的任务信息发送至任务中心,以使得任务中心将第一任务重新添加至待处理任务列表或对第一任务执行其他操作,本公开实施例对此不做限定。
可见,本公开实施例提供的用于处理任务的方法中,不同于现有技术中计算节点被动地被分配任务的方式,通过改变计算资源分发策略,基于计算节点进行申请,而不是基于任务发送方去分发。由于每个计算节点根据自身负载情况,通过主动去任务中心申请计算任务,这样就避免了任务发送方去频繁获取计算节点的负载情况带来的延迟。
此外,可选地,在本公开实施例中,负载均衡策略可以由计算节点决定。任务发送方将任务发送到任务中心,任务的获取速度由计算节点来控制。可选地,任务发送方、任务中心和计算节点三者之间的整个信息交互过程是异步的,服务发送方将信息发送到任务中心就完了一个过程,后续的计算节点获取任务并计算是异步进行的,任务发送方需要通过回调接口等待结果返回。
参见图3,为本公开提供了一种用于处理任务的方法另一个实施例的流程图。如图3所示,该实施例方法包括S301-S308。
S301:计算节点根据当前自身运行状态,确定是否有空余计算能力,若确定有空余计算能力执行S302,若确定没有空余计算能力,返回执行S301。
S302:若确定有空余计算能力,则计算节点向任务中心发起任务处理申请。
当某一个计算节点确定自身具有空余计算能力时,则向任务中心主动发起任务处理申请,而不是等待任务中心或其他设备分配任务。
S303:任务中心根据任务接收时间戳和/或任务优先级,从待处理任务队列中确定出第一任务。
任务中心主要是用于缓存任务发送方提交的任务信息,可以以一个待处理任务队列的方式存储任务信息。任务中心是任务发送方和计算节点之间的桥梁,一方面接收任务发送方的任务提交,一方面根据计算节点的任务申请,从待处理任务队列中确定出待处理的任务并发送给计算节点。
S304:计算节点从任务中心获取第一任务的任务信息。
S305:计算节点根据任务信息对第一任务进行处理。
计算节点根据任务信息对第一任务进行处理,例如,包括根据任务信息执行计算或数据处理的过程。
S306:计算节点判断对第一任务的处理是否成功,若处理成功,执行步骤S307,若处理不成功,执行步骤S308。
S307:计算节点向任务发送方发送任务处理成功消息。
在一种可选方式中,通过以下步骤实现向任务发送方发送任务处理成功消息:在任务发送方发起任务的当前连接中,通过回调接口(例如通过设置结果回调函数的方式)向任务发送方同步发送所述任务处理成功消息。其中,是在任务发送方发起任务的当前连接中,将任务处理成功消息返回给任务发送方。例如,在用户建立的网络连接(例如http连接)中,实时地将任务处理成功消息进行返回给用户,对用户而言,不存在延时感受,是同步得到反馈的。
S308:计算节点将第一任务重新返回给任务中心。
如果任务处理失败,则将第一任务重新返回给任务中心,便于其他计算节点申请处理该第一任务或便于对处理失败的第一任务进行分析。
在一种可选方式中,在计算节点将第一任务的任务信息发送至任务中心之前,还包括:计算节点更新第一任务的任务信息中包括的任务处理失败计数值;任务中心根据计算节点发送的第一任务的任务信息中包括的任务处理失败计数值,确定第一任务的处理策略。其中:任务中心根据计算节点发送的第一任务的任务信息中包括的任务处理失败计数值,确定第一任务的处理策略,包括:若第一任务的任务处理失败计数值达到失败次数阈值,任务中心将第一任务的任务信息添加到失败任务队列中;和/或,若第一任务的任务处理失败计数值未达到所述失败次数阈值,任务中心将所述第一任务的任务信息添加到待处理任务队列中。
例如,可以在任务消息中设置任务处理失败计数值,利用该计数值统计任务被处理失败的次数;并且设置一个任务失败次数阈值。在计算节点处理第一任务失败后,计算节点更新第一任务的任务信息中包括的任务处理失败计数值(例如使任务处理失败计数值加一)。计算节点将该第一任务返回给任务中心。任务中心接收到未处理成功的第一任务信息之后,根据计算节点发送的第一任务的任务信息中包括的任务处理失败计数值,确定第一任务的处理策略。例如,任务中心判断第一任务的任务处理失败计数值是否达到或超过预置的任务失败次数阈值,若是,则将未处理成功的第一任务放置在失败任务队列中;若否,才将未处理成功的第一任务设置在待处理任务队列中,等待下一次被处理。可见,通过判断任务被失败处理的次数,以及维护一个失败任务队列,用于存放被多次(例如3次)处理失败的任务,可避免这类本身可能有问题的任务继续占用正常的处理资源。后续可通过人工或机器查看的方式,对失败任务队列中的任务进行检测和分析。
可见,本公开实施例中,首先采取的是“异步”实现方式:任务发送方和计算节点间是异步进行的(分别向任务中心提交任务和申请任务处理),解耦合了计算节点和任务发送方的关系,进一步加速计算节点对任务的获取和计算;然后将“异步”方式再转变为“同步”方式:在任务发送方发起任务的当前连接中,将任务处理成功消息返回给任务发送方,使用户同步得到反馈,用户体验感受好。
图4为本公开用于处理任务的系统一个实施例的结构示意图。该实施例的系统可用于实现本公开上述各方法实施例。如图4所示,该实施例的系统用于由计算节点根据自身计算能力主动申请处理任务从而实现在多个计算节点之间的负载均衡;所述用于处理任务的系统包括任务中心401和至少一个计算节点402;其中:
所述计算节点402,用于根据当前自身运行状态,确定是否有空余计算能力,若确定有空余计算能力,则向任务中心401发起任务处理申请;以及,接收所述任务中心401响应于所述任务处理申请发送的第一任务的任务信息。
在一种可选方式中,所述计算节点402具体用于:判断当前处理的第二任务是否执行完毕,和/或,判断当前是否有空闲线程或空闲进程。
在一种可选方式中,所述计算节点402还用于:判断所述第二任务是否处理成功;若所述第二任务未处理成功,则将所述第二任务的任务信息发送至所述任务中心401。
在一种可选方式中,所述计算节点402还用于:更新所述第二任务的任务信息中包括的任务处理失败计数值;所述任务中心401用于:根据所述计算节点402发送的所述第二任务的任务信息中包括的任务处理失败计数值,确定所述第二任务的处理策略。
在一种可选方式中,所述任务中心401具体用于:若所述第二任务的任务处理失败计数值达到失败次数阈值,则将所述第二任务的任务信息添加到失败任务队列中;和/或,若所述第二任务的任务处理失败计数值未达到所述失败次数阈值,则将所述第二任务的任务信息添加到待处理任务队列中。
在一种可选方式中,所述任务中心401还用于:根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,从所述至少一个待处理任务中确定所述第一任务。
在一种可选方式中,所述任务中心401具体用于:根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,确定所述至少一个待处理任务在待处理任务队列中的排列顺序;将所述待处理任务队列中的首个任务确定为所述第一任务。
在一种可选方式中,所述任务中心401具体用于:按照任务优先级从高至低的顺序在所述待处理任务队列中依次排列所述至少一个待处理任务;和/或,根据接收时间戳的先后在所述待处理任务队列中依次排列所述至少一个待处理任务。
在一种可选方式中,所述任务中心401具体用于:若所述至少一个待处理任务包括具有相同任务优先级的第三任务和第四任务,按照所述第三任务和所述第四任务的接收时间戳的先后确定所述第三任务和所述第四任务的排列顺序。
图5为本公开用于处理任务的系统另一个实施例的结构示意图。该实施例的系统可用于实现本公开上述各方法实施例。如图5所示,该实施例的系统除了包括任务中心401、至少一个计算节点402之外,还包括任务发送方403。
在一种可选方式中,所述计算节点402还用于:根据所述第一任务的任务信息,处理所述第一任务;以及,若成功处理所述第一任务,向所述第一任务的任务发送方403发送任务处理成功消息。
本公开实施例还提供了一种电子系统,例如可以是移动终端、个人计算机(PC)、平板电脑、服务器等。下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的电子系统600的结构示意图:如图6所示,计算机系统600包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(CPU)601,和/或一个或多个图像处理器(GPU)613等,处理器可以根据存储在只读存储器(ROM)602中的可执行指令或者从存储部分608加载到随机访问存储器(RAM)603中的可执行指令而执行各种适当的动作和处理。通信部612可包括但不限于网卡,所述网卡可包括但不限于IB(Infiniband)网卡,
处理器可与只读存储器602和/或随机访问存储器630中通信以执行可执行指令,通过总线604与通信部612相连、并经通信部612与其他目标设备通信,从而完成本申请实施例提供的任一项方法对应的操作,例如,由计算节点根据自身计算能力主动申请处理任务,从而实现在多个计算节点之间的负载均衡;所述方法包括:计算节点根据当前自身运行状态,确定是否有空余计算能力,若确定有空余计算能力,则向任务中心发起任务处理申请;计算节点接收任务中心响应所述任务处理申请的第一任务的任务信息。
此外,在RAM 603中,还可存储有装置操作所需的各种程序和数据。CPU601、ROM602以及RAM603通过总线604彼此相连。在有RAM603的情况下,ROM602为可选模块。RAM603存储可执行指令,或在运行时向ROM602中写入可执行指令,可执行指令使处理器601执行上述通信方法对应的操作。输入/输出(I/O)接口605也连接至总线604。通信部612可以集成设置,也可以设置为具有多个子模块(例如多个IB网卡),并在总线链接上。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
需要说明的,如图6所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图6的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如GPU和CPU可分离设置或者可将GPU集成在CPU上,通信部可分离设置,也可集成设置在CPU或GPU上,等等。这些可替换的实施方式均落入本公开公开的保护范围。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本申请实施例提供的方法步骤对应的指令,例如,接收待检测证件的图片或视频;对待检测证件的图片或视频进行处理后,得到待检测证件图像;对待检测证件图像进行特征提取,得到多个类别的特征信息;根据所述多个类别的特征信息进行证件伪造识别,得到所述证件的识别结果。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

Claims (10)

1.一种用于处理任务的方法,其特征在于,包括:
计算节点根据当前自身运行状态,确定是否有空余计算能力;
若确定有空余计算能力,所述计算节点向任务中心发送任务处理申请;
所述计算节点接收所述任务中心响应于所述任务处理申请发送的第一任务的任务信息。
2.根据权利要求1所述的方法,其特征在于,所述计算节点根据当前自身运行状态,确定是否有空余计算能力,包括:
所述计算节点判断当前处理的第二任务是否执行完毕,和/或
所述计算节点判断当前是否有空闲线程或空闲进程。
3.根据权利要求1或2所述的方法,其特征在于,在所述计算节点判断当前处理的第二任务是否执行完毕之后,还包括:
所述计算节点判断所述第二任务是否处理成功;
若所述第二任务未处理成功,所述计算节点将所述第二任务的任务信息发送至所述任务中心。
4.根据权利要求3所述的方法,其特征在于,在所述计算节点将所述第二任务的任务信息发送至所述任务中心之前,还包括:
所述计算节点更新所述第二任务的任务信息中包括的任务处理失败计数值;
所述方法还包括:
所述任务中心根据所述计算节点发送的所述第二任务的任务信息中包括的任务处理失败计数值,确定所述第二任务的处理策略。
5.根据权利要求4所述的方法,其特征在于,所述任务中心根据所述计算节点发送的所述第二任务的任务信息中包括的任务处理失败计数值,确定所述第二任务的处理策略,包括:
若所述第二任务的任务处理失败计数值达到失败次数阈值,所述任务中心将所述第二任务的任务信息添加到失败任务队列中;和/或
若所述第二任务的任务处理失败计数值未达到所述失败次数阈值,所述任务中心将所述第二任务的任务信息添加到待处理任务队列中。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,从所述至少一个待处理任务中确定所述第一任务。
7.根据权利要求6所述的方法,其特征在于,所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,从所述至少一个待处理任务中确定所述第一任务,包括:
所述任务中心根据至少一个待处理任务中每个任务的接收时间戳和/或任务优先级,确定所述至少一个待处理任务在待处理任务队列中的排列顺序;
所述任务中心将所述待处理任务队列中的首个任务确定为所述第一任务。
8.一种用于处理任务的系统,其特征在于,包括任务中心和至少一个计算节点;其中:
所述计算节点,用于
根据当前自身运行状态,确定是否有空余计算能力;
若确定有空余计算能力,向任务中心发送任务处理申请;以及
接收所述任务中心响应于所述任务处理申请发送的第一任务的任务信息。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被至少一个处理器执行时实现权利要求1-7任一项所述方法。
10.一种任务处理系统,包括存储器和至少一个处理器,所述存储器用于存储计算机可读指令,其特征在于,所述至少一个处理器执行所述计算机可读指令时实现权利要求1-7任一项所述方法。
CN201711441511.7A 2017-12-26 2017-12-26 用于处理任务的方法、系统和存储介质 Pending CN108228349A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711441511.7A CN108228349A (zh) 2017-12-26 2017-12-26 用于处理任务的方法、系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711441511.7A CN108228349A (zh) 2017-12-26 2017-12-26 用于处理任务的方法、系统和存储介质

Publications (1)

Publication Number Publication Date
CN108228349A true CN108228349A (zh) 2018-06-29

Family

ID=62647923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711441511.7A Pending CN108228349A (zh) 2017-12-26 2017-12-26 用于处理任务的方法、系统和存储介质

Country Status (1)

Country Link
CN (1) CN108228349A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457135A (zh) * 2019-08-09 2019-11-15 重庆紫光华山智安科技有限公司 一种资源调度方法、装置及共享gpu显存的方法
CN110716805A (zh) * 2019-09-27 2020-01-21 上海依图网络科技有限公司 图形处理器的任务分配方法、装置、电子设备及存储介质
CN110825536A (zh) * 2019-10-31 2020-02-21 深圳移航通信技术有限公司 嵌入式实时操作系统中任务间的通信方法及装置
CN111340613A (zh) * 2020-02-26 2020-06-26 中国邮政储蓄银行股份有限公司 作业处理方法、系统以及存储介质
CN111381948A (zh) * 2020-02-04 2020-07-07 北京贝思科技术有限公司 分布式计算任务处理方法、装备及电子设备
CN111381956A (zh) * 2018-12-28 2020-07-07 杭州海康威视数字技术股份有限公司 一种任务处理的方法、装置及云分析系统
CN111381941A (zh) * 2018-12-27 2020-07-07 北京忆恒创源科技有限公司 并发任务处理系统中提供QoS的方法与装置
CN111427551A (zh) * 2020-02-14 2020-07-17 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、设备、存储介质
CN111427694A (zh) * 2020-03-26 2020-07-17 北京金山云网络技术有限公司 任务执行方法、装置、系统和服务器
CN112003898A (zh) * 2020-07-27 2020-11-27 珠海许继芝电网自动化有限公司 多节点集群的负载均衡方法及系统
CN113238868A (zh) * 2021-05-26 2021-08-10 北京达佳互联信息技术有限公司 任务处理方法、装置、服务器、设备、系统及存储介质
CN115145707A (zh) * 2022-07-14 2022-10-04 中国电子技术标准化研究院 一种高性能及负载均衡的文档格式转换方法
CN116913011A (zh) * 2023-08-28 2023-10-20 深圳市易安格实业有限公司 一种基于物联网的智能柜的存取件系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902573A (zh) * 2012-09-20 2013-01-30 北京搜狐新媒体信息技术有限公司 一种基于共享资源的任务的处理方法及装置
CN103186418A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种任务分发方法及系统
CN105718317A (zh) * 2016-01-15 2016-06-29 浪潮(北京)电子信息产业有限公司 一种任务调度方法及装置
CN106406983A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种集群中的任务调度方法及装置
CN107329820A (zh) * 2016-04-28 2017-11-07 杭州海康威视数字技术股份有限公司 一种用于集群系统的任务处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186418A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种任务分发方法及系统
CN102902573A (zh) * 2012-09-20 2013-01-30 北京搜狐新媒体信息技术有限公司 一种基于共享资源的任务的处理方法及装置
CN106406983A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种集群中的任务调度方法及装置
CN105718317A (zh) * 2016-01-15 2016-06-29 浪潮(北京)电子信息产业有限公司 一种任务调度方法及装置
CN107329820A (zh) * 2016-04-28 2017-11-07 杭州海康威视数字技术股份有限公司 一种用于集群系统的任务处理方法及装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111381941A (zh) * 2018-12-27 2020-07-07 北京忆恒创源科技有限公司 并发任务处理系统中提供QoS的方法与装置
CN111381956B (zh) * 2018-12-28 2024-02-27 杭州海康威视数字技术股份有限公司 一种任务处理的方法、装置及云分析系统
CN111381956A (zh) * 2018-12-28 2020-07-07 杭州海康威视数字技术股份有限公司 一种任务处理的方法、装置及云分析系统
CN110457135A (zh) * 2019-08-09 2019-11-15 重庆紫光华山智安科技有限公司 一种资源调度方法、装置及共享gpu显存的方法
CN110716805A (zh) * 2019-09-27 2020-01-21 上海依图网络科技有限公司 图形处理器的任务分配方法、装置、电子设备及存储介质
CN110825536A (zh) * 2019-10-31 2020-02-21 深圳移航通信技术有限公司 嵌入式实时操作系统中任务间的通信方法及装置
CN111381948A (zh) * 2020-02-04 2020-07-07 北京贝思科技术有限公司 分布式计算任务处理方法、装备及电子设备
TWI786527B (zh) * 2020-02-14 2022-12-11 大陸商深圳市商湯科技有限公司 程式設計平台的使用者代碼運行方法、電子設備和電腦可讀儲存介質
WO2021159831A1 (zh) * 2020-02-14 2021-08-19 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、节点、设备、介质
JP2022522609A (ja) * 2020-02-14 2022-04-20 シェンチェン センスタイム テクノロジー カンパニー リミテッド プログラミング・プラットフォームのユーザコードの実行方法及びプラットフォーム、ノード、機器、媒体
CN111427551A (zh) * 2020-02-14 2020-07-17 深圳市商汤科技有限公司 编程平台的用户代码运行方法及平台、设备、存储介质
CN111340613B (zh) * 2020-02-26 2023-10-03 中国邮政储蓄银行股份有限公司 作业处理方法、系统以及存储介质
CN111340613A (zh) * 2020-02-26 2020-06-26 中国邮政储蓄银行股份有限公司 作业处理方法、系统以及存储介质
CN111427694A (zh) * 2020-03-26 2020-07-17 北京金山云网络技术有限公司 任务执行方法、装置、系统和服务器
WO2021190087A1 (zh) * 2020-03-26 2021-09-30 北京金山云网络技术有限公司 任务执行方法、装置、系统和服务器
CN112003898A (zh) * 2020-07-27 2020-11-27 珠海许继芝电网自动化有限公司 多节点集群的负载均衡方法及系统
CN113238868A (zh) * 2021-05-26 2021-08-10 北京达佳互联信息技术有限公司 任务处理方法、装置、服务器、设备、系统及存储介质
CN113238868B (zh) * 2021-05-26 2024-01-30 北京达佳互联信息技术有限公司 任务处理方法、装置、服务器、设备、系统及存储介质
CN115145707A (zh) * 2022-07-14 2022-10-04 中国电子技术标准化研究院 一种高性能及负载均衡的文档格式转换方法
CN116913011A (zh) * 2023-08-28 2023-10-20 深圳市易安格实业有限公司 一种基于物联网的智能柜的存取件系统及方法

Similar Documents

Publication Publication Date Title
CN108228349A (zh) 用于处理任务的方法、系统和存储介质
US7624208B2 (en) Method, system, and computer program for managing a queuing system
US9396038B2 (en) Resilient data processing pipeline architecture
US10846096B1 (en) Batch processing of requests for trained machine learning model
CN107533470A (zh) 用于低延时执行程序代码的安全协议
CN109343941A (zh) 任务处理方法、装置、电子设备及计算机可读存储介质
CN108854055A (zh) 用于远程显示器的基于云的虚拟化图形处理方法和系统
CN103885820B (zh) 信息处理装置和信息处理方法
CN103297412B (zh) 瘦客户端系统、连接管理服务器、连接管理方法和计算机可读介质
US20200348977A1 (en) Resource scheduling methods, device and system, and central server
CN109729106A (zh) 处理计算任务的方法、系统和计算机程序产品
US20100042723A1 (en) Method and system for managing load in a network
CN107688495A (zh) 调度处理器的方法及设备
CN107341050A (zh) 基于动态线程池的服务处理方法和装置
CN108197912A (zh) 一种业务处理系统及方法
CN104395890B (zh) 使用异构处理器为应用程序提供低潜伏时间的系统和方法
CN108958893A (zh) 高并发业务的资源控制方法、装置和计算机可读存储介质
CN106528288A (zh) 一种资源管理方法、装置和系统
CN106257893A (zh) 存储服务器任务响应方法、客户端、服务器及系统
CN109726005A (zh) 用于管理资源的方法、服务器系统和计算机程序产品
CN108847981A (zh) 分布式计算机云计算处理方法
CN110162397A (zh) 资源分配方法、装置及系统
CN109729113A (zh) 管理专用处理资源的方法、服务器系统和计算机程序产品
CA3166394A1 (en) Systems and methods for multi-client content delivery
CN107819855A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180629