CN104462370A - 分布式任务调度系统及方法 - Google Patents

分布式任务调度系统及方法 Download PDF

Info

Publication number
CN104462370A
CN104462370A CN201410748604.4A CN201410748604A CN104462370A CN 104462370 A CN104462370 A CN 104462370A CN 201410748604 A CN201410748604 A CN 201410748604A CN 104462370 A CN104462370 A CN 104462370A
Authority
CN
China
Prior art keywords
task
data
control module
tasks carrying
assignment database
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
CN201410748604.4A
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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201410748604.4A priority Critical patent/CN104462370A/zh
Publication of CN104462370A publication Critical patent/CN104462370A/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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种分布式任务调度系统及方法,所述系统包括:任务接口模块,用于接收客户端发送的任务数据和向客户端返回任务结果;任务数据库,用于对所述任务数据进行存储和处理;任务控制模块,用于对所述任务数据库发送的任务数据进行解析和包装,以及当任务执行端对任务执行失败后,执行任务回滚;任务调度模块,用于根据所述任务控制模块解析和包装后的任务数据,将所述任务发至所述任务执行端,以及接收所述任务执行端返回的回应信息;以及所述任务接口模块、所述任务数据库、所述任务控制模块和所述任务调度模块均采用分布式方式设置在多个设备上。本发明通过采用分布式任务管理和任务调度方式,可在保证任务可靠性和关联性的前提下,提升任务处理速度,避免单点故障且支持多种算法,使任务分发和执行的机制更加灵活多变。

Description

分布式任务调度系统及方法
技术领域
本发明涉及互联网技术领域,更为具体而言,涉及一种分布式任务调度系统及方法。
背景技术
当前,随着业务规模的逐渐扩大,企业内部系统或者外部系统中发起的任务数量越来越多,任务种类也越来越繁杂,既存在独立任务,也存在互相关联的任务,这些任务可能是流程性的任务,也可能是操作性的任务,系统中的任务调度系统如果发生任何问题,都有可能对整个系统造成难以估计的损失,如系统本身发生故障、任务失败且无法进行任务回滚操作等问题。
现有的任务调度系统主要有以下几类:1、基于任务流对任务进行调度:每一种任务都需要有一个预先配置好的任务状态流,通过记录任务当前所处的状态,判别任务下一步需要进行的操作类型;2、使用中控中心对任务进行调度:整个系统由一个中控中心来负责对任务进行记录和调度,其中不仅有只支持独立任务的系统,也存在兼容关联任务的系统;3、使用任务标识对任务进行调度:将每一个任务赋予一个独立的标识(一般为任务种类名称+唯一编号),针对每一个任务标识,将其分发到具体的任务执行端中。
然而,现有的三种任务调度系统所采用的方式均存在一定的问题:1、基于任务流的系统虽然可以很好的控制每一个任务的执行状态,但是由于所有的状态流程均是预先配置,因此对于任务调度的灵活性比较欠缺,一般多用于流程比较固定的场景;2、使用中控中心对任务进行调度,最大的问题就是系统本身难以采用分布式协同工作,由于使用一个中心控制,在任务调度效率上也较为缓慢;3、使用任务标识对任务进行调度,每一个任务对于系统来说都是独立的,无法支持关联任务,系统扩展性欠佳。
因此,为了解决上述问题,亟需一种在能够保证系统本身可靠的前提下,支持独立或者关联任务,支持任务回滚,以及多种调度算法,提升任务的处理速度,实现高效智能的分布式任务调度系统及方法。
发明内容
为了解决现有任务调度系统难以分布式协同工作、不支持任务回滚、灵活性差的问题,本发明的实施方式提供了一种分布式任务调度系统及方法。
一方面,本发明实施方式提供了一种分布式任务调度系统,所述系统包括:
任务接口模块,用于接收客户端发送的任务数据和向客户端返回任务结果;
任务数据库,用于对所述任务数据进行存储和处理;
任务控制模块,用于对所述任务数据库发送的任务数据进行解析和包装,以及当任务执行端对任务执行失败后,执行任务回滚;
任务调度模块,用于根据所述任务控制模块解析和包装后的任务数据,将所述任务发至所述任务执行端,以及接收所述任务执行端返回的回应信息;以及
所述任务接口模块、所述任务数据库、所述任务控制模块和所述任务调度模块均采用分布式方式设置在多个设备上。
相应的,本发明实施方式还提供了一种分布式任务调度系统的运行方法,所述分布式调度系统包括采用分布式方式设置在多个设备上的任务接口模块、任务数据库、任务控制模块和任务调度模块,所述运行方法包括:
任务接口模块接收客户端发送的任务数据;
任务数据库对所述任务数据进行存储和处理;
任务控制模块对所述任务数据库发送的任务数据进行解析和包装,以及当任务执行端对任务执行失败后,执行任务回滚;
任务调度模块根据所述任务控制模块解析和包装后的任务数据,将所述任务发至所述任务执行端,以及接收所述任务执行端返回的回应信息;
所述任务接口模块根据所述回应信息向所述客户端返回任务结果。
实施本发明的各种实施方式具有以下有益效果:通过采用分布式任务管理和任务调度方式,可在保证任务可靠性和关联性的前提下,提升任务处理速度,避免单点故障且支持多种算法,使任务分发和执行的机制更加灵活多变。
附图说明
图1是根据本发明实施方式的分布式任务调度系统的架构图;
图2示出了图1的任务接口模块100的框图;
图3示出了图1的任务数据库200的框图;
图4示出了图1的任务控制模块300的框图;
图5示出了图1的任务调度模块400的框图;
图6是根据本发明实施方式的分布式任务调度系统的运行方法的流程图;
图7示出了图6的步骤S1的具体流程图;
图8示出了图6的步骤S2的具体流程图;
图9示出了图6的步骤S3的具体流程图;
图10示出了图6的步骤S4的具体流程图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
图1是根据本发明实施方式的分布式任务调度系统1的架构图;参见图1,所述系统1包括:
任务接口模块100,用于接收客户端发送的任务数据和向客户端返回任务结果;
任务数据库200,用于对所述任务数据进行存储和处理;
任务控制模块300,用于对所述任务数据库200发送的任务数据进行解析和包装,以及当任务执行端对任务执行失败后,执行任务回滚;
任务调度模块400,用于根据所述任务控制模块300解析和包装后的任务数据,将所述任务发至所述任务执行端,以及接收所述任务执行端返回的回应信息;以及
所述任务接口模块100、所述任务数据库200、所述任务控制模块300和所述任务调度模块400均采用分布式方式设置在多个设备上,从而避免单点故障,当任何一类模块中的一个或者少部分出现故障时,任务的发送和调度并不受影响。对于外部的任务发起端来说,每一个任务接收模块都是相同的,例如:当一个任务接收模块不可用时,可随时切换到另一个可用的任务接收模块(也可以将多个任务接收模块部署在LVS(linux virtual server的缩写,linux内核支持的虚拟服务器)之后,这样对于任务发起端来说是透明的)。
本发明实施方式的分布式任务调度系统通过采用分布式任务管理和任务调度方式,可在保证任务可靠性和关联性的前提下,提升任务处理速度,避免单点故障且支持多种算法,使任务分发和执行的机制更加灵活多变。
图2示出了图1的任务接口模块100的框图;参见图2,所述任务接口模块100包括:
收发单元110,用于接收所述客户端发送的任务数据和向客户端返回任务结果;
拆分单元120,用于对接收到的所述任务数据进行拆分;以及
存储单元130,用于将所述任务数据发送给所述任务数据库进行存储。
其中,所述任务接口模块100用于接收任务数据以及返回任务结果,根据任务的操作名称(任务操作名称是任务数据中的一个属性值),将任务存储到不同的缓存队列中,然后将任务记录到数据库中,任务记录包括:任务名称、任务唯一标示UUID(Universally Unique Identifier,通用唯一识别码),每一个任务有一个独一无二的UUID)、任务优先级(高:2,中:1,低:0)、任务来源名字(任务的来源方)、任务操作参数(任务详细数据)、任务缓存的队列名字、任务记录时间、任务结束时间、任务执行状态码(未开始:200,已完成:0)和任务错误码(根据执行错误不同)。而返回任务结果是根据任务附加参数中的任务源地址进行返回。
图3示出了图1的任务数据库200的框图;参见图3,所述任务数据库200包括:
缓存单元210,用于将接收到的所述任务数据存储至缓存队列中;以及
恢复单元220,用于在所述系统出现异常后,恢复未执行的任务数据。
其中,所述任务数据库200用于存储所有已经接收到的任务记录以及任务数据,任务记录包括的信息如上文所述,这里不再复述。所述任务数据均缓存在队列中,使用双端队列数据结构对任务数据进行存取操作。任务数据库200可以是分布式集群,也可以是主从式的提供服务。
图4示出了图1的任务控制模块300的框图;参见图4,所述任务控制模块300包括:
分解单元310,用于当所述任务为关联任务时,对任务数据进行分解;
排序单元320,用于根据所述任务是否为关联次序以及所述任务的优先级,排列所述任务的发送次序;
地址计算单元330,用于根据所述任务的属性值和任务来源,计算出所述任务的发送地址和结果接收地址;以及
回滚单元340,用于当所述任务执行端对所述任务执行失败后,执行任务回滚。该模块支持所有类别任务的回滚,包括独立和关联任务,并且对于关联任务可以进行间隔式的进行任务回滚操作。
并且,所述任务控制模块300采用分布式方式部署在多个机器上,每一个都是独立不相关的,逻辑上都去取任务数据库中的任务,当其中一个任务控制模块故障时,不影响其他的任务控制模块。
图5示出了图1的任务调度模块400的框图;参见图5,所述任务调度模块400包括:
接收存储单元410,用于接收所述任务控制模块解析和包装后的任务数据,并将所述任务持久化存储至所述任务数据库中;以及
任务派发单元420,用于根据不同的负载均衡算法,将所述任务派发至所述任务执行端中不同的任务执行模块中。例如,支持两种不同的负载均衡算法:一种是轮询算法,对应多个同一种任务,底层执行模块注册同一个名字,调度模块轮询方式查询空闲的执行模块,将任务分配给空闲的执行模块;另一种是自定义算法,对应多个同一种任务,底层执行模块注册不同的名字,调度模块根据自定义功能函数中的逻辑对任务数据计算出注册名字(例如根据任务的属性不同),将任务分配给注册不同名字的任务执行模块。
所述任务调度模块400根据得到的任务数据以及此任务的注册名字,对注册此名字的任务执行端进行查询,如果状态是空闲,则将此任务发送至该任务执行端。
同样,所述任务调度模块400采用分布式方式部署在多个机器上,当其中一个故障时,其与任务控制模块以及底层执行端连接中断,不会再中转任务,任务将经过其他可用的调度模块。多个任务调度模块之间也是独立且非关联的,任何一个可用,均能保证将任务进行可靠的投递。
图6是根据本发明实施方式的分布式任务调度系统的运行方法的流程图;参见图6,所述分布式调度系统包括采用分布式方式设置在多个设备上的任务接口模块、任务数据库、任务控制模块和任务调度模块,所述运行方法包括:
步骤S1,任务接口模块接收客户端发送的任务数据;
步骤S2,任务数据库对所述任务数据进行存储和处理;
步骤S3,任务控制模块对所述任务数据库发送的任务数据进行解析和包装,以及当任务执行端对任务执行失败后,执行任务回滚;
步骤S4,任务调度模块根据所述任务控制模块解析和包装后的任务数据,将所述任务发至所述任务执行端,以及接收所述任务执行端返回的回应信息;
步骤S5,所述任务接口模块根据所述回应信息向所述客户端返回任务结果。由于所述任务接口模块、所述任务数据库、所述任务控制模块和所述任务调度模块均采用分布式方式设置在多个设备上,从而避免单点故障,当任何一类模块中的一个或者少部分出现故障时,任务的发送和调度并不受影响。对于外部的任务发起端来说,每一个任务接收模块都是相同的,例如:当一个任务接收模块不可用时,可随时切换到另一个可用的任务接收模块(也可以将多个任务接收模块部署在LVS之后,这样对于任务发起端来说是透明的)。
本发明实施方式的分布式任务调度方法通过采用分布式任务管理和任务调度方式,可在保证任务可靠性和关联性的前提下,提升任务处理速度,避免单点故障且支持多种算法,使任务分发和执行的机制更加灵活多变。
图7示出了图6的步骤S1的具体流程图;参见图7,所述步骤S1包括:
步骤S11,所述接收所述客户端发送的任务数据;
步骤S12,对接收到的所述任务数据进行拆分;以及
步骤S13,将所述任务数据发送给所述任务数据库进行存储。
其中,所述步骤S11中的接收所述客户端发送的任务数据,根据任务的操作名称(任务操作名称是任务数据中的一个属性值),将任务存储到不同的缓存队列中,然后将任务记录到数据库中,任务记录包括:任务名称、任务唯一标示UUID(Universally Unique Identifier,通用唯一识别码),每一个任务有一个独一无二的UUID)、任务优先级(高:2,中:1,低:0)、任务来源名字(任务的来源方)、任务操作参数(任务详细数据)、任务缓存的队列名字、任务记录时间、任务结束时间、任务执行状态码(未开始:200,已完成:0)和任务错误码(根据执行错误不同)。
图8示出了图6的步骤S2的具体流程图;参见图8,所述步骤S2包括:
步骤S21,所述任务数据库将接收到的所述任务数据存储至缓存队列中;以及
步骤S22,在分布式任务调度系统执行出现异常后,恢复未执行的任务数据。
其中,所述步骤S21存储所有已经接收到的任务记录以及任务数据,任务记录包括的信息如上文所述,这里不再复述。所述任务数据均缓存在队列中,使用双端队列数据结构对任务数据进行存取操作。任务数据库可以是分布式集群,也可以是主从式的提供服务。
图9示出了图6的步骤S3的具体流程图;参见图9,所述步骤S3中所述任务控制模块对所述任务数据库发送的任务数据进行解析和包装包括:
步骤S31,当所述任务为关联任务时,所述任务控制模块对任务数据进行分解;
步骤S32,所述任务控制模块根据所述任务是否为关联次序以及所述任务的优先级,排列所述任务的发送次序;以及
步骤S33,根据所述任务的属性值和任务来源,计算出所述任务的发送地址和结果接收地址。
另外,所述步骤S3还包括如下步骤:当所述任务执行端对所述任务执行失败后,执行任务回滚。该步骤支持所有类别任务的回滚,包括独立和关联任务,并且对于关联任务可以进行间隔式的进行任务回滚操作。
所述步骤S3具体可包括如下过程:
1)、任务控制模块启动时,会从配置信息里发现所有可能的缓存队列名字以及对应的计算规则,并为每一个缓存队列启动一个子进程(forward进程),并且根据配置信息里的每个任务结果回收配置启动一个子进程(retrieve进程),当配置信息发送改变时,实时的对forward和retrieve进程进行改变。
2)、retrieve进程接收任务执行端的处理结果,并根据任务的附加参数判断是否为关联任务后者独立任务,若为独立任务,进一步查看任务的执行状态是否为成功,若成功则将此任务结果存回任务数据库中的返回队列。若为失败,则将任务附加参数中的执行顺序设置为回滚,将其重新压入队列中。
3)、forward进程实时对缓存队列进行查找,若存在任务,则将其取出,首先查看是否为关联任务,如果是独立任务按照步骤3)进行处理,否则按照步骤4)进行处理。
4)、按照对应的计算规则对任务属性进行检查,计算规则是可以任意定制的,如果存在计算规则,按步骤5)处理,没有计算规则按步骤6)进行处理。将关联的多个子任务拆分成一个个独立任务,按照步骤3)逐一进行处理后,再将它们重新打包成一个关联任务。
5)、将任务属性作为参数传给计算规则,计算规则返回其发送地址(通常的规则会根据任务来源、任务优先级、队列名字、任务操作名称等组合进行计算),再将发送地址、任务源地址、任务优先级、操作序号、执行顺序打包进任务附加参数中(操作序号指明了关联任务此时应该执行哪个任务,执行顺序指明任务时正常执行还是处于回滚中)。
6)、将队列名字和任务操作名称组合成一个发送地址,将发送地址和其他参数打包进任务附加参数中(具体的附加参数内容参见步骤6)中的说明)。
7)、将重新打包好的任务发送给任务调度模块。
图10示出了图6的步骤S4的具体流程图;参见图10,所述步骤S4包括:
步骤S41,所述任务调度模块接收所述任务控制模块解析和包装后的任务数据,并将所述任务持久化存储至所述任务数据库中;以及
步骤S42,根据不同的负载均衡算法,将所述任务派发至所述任务执行端中不同的任务执行模块中。例如,支持两种不同的负载均衡算法:一种是轮询算法,对应多个同一种任务,底层执行模块注册同一个名字,调度模块轮询方式查询空闲的执行模块,将任务分配给空闲的执行模块;另一种是自定义算法,对应多个同一种任务,底层执行模块注册不同的名字,调度模块根据自定义功能函数中的逻辑对任务数据计算出注册名字(例如根据任务的属性不同),将任务分配给注册不同名字的任务执行模块。该步骤根据得到的任务数据以及此任务的注册名字,对注册此名字的任务执行端进行查询,如果状态是空闲,则将此任务发送至该任务执行端。所述任务调度模块也采用分布式方式部署在多个机器上多个任务调度模块之间也是独立且非关联的,任何一个可用,均能保证将任务进行可靠的投递。
所述步骤S4从任务控制模块接收任务,而且保存有任务执行端的注册信息(注册信息即为控制模块计算出来的发送地址,任务执行端通过网络与任务调度模块进行长连接,将注册信息告知给任务调度模块),根据任务的附加属性,将任务发送到指定的地址。详细处理的过程如下所示:
1)、任务调度模块接收到任务后,将任务持久化到任务数据库中(任务信息包括:任务标识、任务优先级、任务数据和任务接收时间)。
2)、查看任务数据库中接收时间最新的时间且优先级最高,读出该记录中的任务数据,任务优先级,然后解析出任务数据中的附加属性并发送地址。
3)、任务调度模块检查所有连接的任务执行端中,是否有此任务的发送地址,若无跳过该任务,跳转到步骤2),若存在1个以上注册了该发送地址的任务执行端,任务调度模块向任务执行端发送一个“操作准备询问”的数据包,若任务执行端回应“OK”,那么发送此任务,若任务执行端回应“BUSY”,那么向下一个任务执行端发送“操作准备询问”的数据包,直到有任务执行端回应“OK”,若所有的任务执行端均回应“BUSY”,那么暂时跳过该任务,继续跳转到步骤2)。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。

Claims (10)

1.一种分布式任务调度系统,其特征在于,所述系统包括:
任务接口模块,用于接收客户端发送的任务数据和向客户端返回任务结果;
任务数据库,用于对所述任务数据进行存储和处理;
任务控制模块,用于对所述任务数据库发送的任务数据进行解析和包装,以及当任务执行端对任务执行失败后,执行任务回滚;
任务调度模块,用于根据所述任务控制模块解析和包装后的任务数据,将所述任务发至所述任务执行端,以及接收所述任务执行端返回的回应信息;以及
所述任务接口模块、所述任务数据库、所述任务控制模块和所述任务调度模块均采用分布式方式设置在多个设备上。
2.如权利要求1所述的系统,其特征在于,所述任务接口模块包括:
收发单元,用于接收所述客户端发送的任务数据和向客户端返回任务结果;
拆分单元,用于对接收到的所述任务数据进行拆分;以及
存储单元,用于将所述任务数据发送给所述任务数据库进行存储。
3.如权利要求2所述的系统,其特征在于,所述任务数据库包括:
缓存单元,用于将接收到的所述任务数据存储至缓存队列中;以及
恢复单元,用于在所述系统出现异常后,恢复未执行的任务数据。
4.如权利要求3所述的系统,其特征在于,所述任务控制模块包括:
分解单元,用于当所述任务为关联任务时,对任务数据进行分解;
排序单元,用于根据所述任务是否为关联次序以及所述任务的优先级,排列所述任务的发送次序;
地址计算单元,用于根据所述任务的属性值和任务来源,计算出所述任务的发送地址和结果接收地址;以及
回滚单元,用于当所述任务执行端对所述任务执行失败后,执行任务回滚。
5.如权利要求4所述的系统,其特征在于,所述任务调度模块包括:
接收存储单元,用于接收所述任务控制模块解析和包装后的任务数据,并将所述任务持久化存储至所述任务数据库中;以及
任务派发单元,用于根据负载均衡算法,将所述任务派发至所述任务执行端中不同的任务执行模块中。
6.一种分布式任务调度系统的运行方法,其特征在于,所述分布式调度系统包括采用分布式方式设置在多个设备上的任务接口模块、任务数据库、任务控制模块和任务调度模块,所述运行方法包括:
任务接口模块接收客户端发送的任务数据;
任务数据库对所述任务数据进行存储和处理;
任务控制模块对所述任务数据库发送的任务数据进行解析和包装,以及当任务执行端对任务执行失败后,执行任务回滚;
任务调度模块根据所述任务控制模块解析和包装后的任务数据,将所述任务发至所述任务执行端,以及接收所述任务执行端返回的回应信息;
所述任务接口模块根据所述回应信息向所述客户端返回任务结果。
7.如权利要求6所述的方法,其特征在于,所述任务接口模块接收客户端发送的任务数据包括:
接收所述客户端发送的任务数据;
对接收到的所述任务数据进行拆分;以及
将所述任务数据发送给所述任务数据库进行存储。
8.如权利要求7所述的方法,其特征在于,所述任务数据库对所述任务数据进行存储和处理包括:
所述任务数据库将接收到的所述任务数据存储至缓存队列中;以及
在分布式任务调度系统执行出现异常后,恢复未执行的任务数据。
9.如权利要求8所述的方法,其特征在于,所述任务控制模块对所述任务数据库发送的任务数据进行解析和包装包括:
当所述任务为关联任务时,所述任务控制模块对任务数据进行分解;
所述任务控制模块根据所述任务是否为关联次序以及所述任务的优先级,排列所述任务的发送次序;以及
根据所述任务的属性值和任务来源,计算出所述任务的发送地址和结果接收地址。
10.如权利要求9所述的方法,其特征在于,所述任务调度模块所述任务控制模块解析和包装后的任务数据,将所述任务发至所述任务执行端包括:
所述任务调度模块接收所述任务控制模块解析和包装后的任务数据,并将所述任务持久化存储至所述任务数据库中;以及
根据负载均衡算法,将所述任务派发至所述任务执行端中不同的任务执行模块中。
CN201410748604.4A 2014-12-09 2014-12-09 分布式任务调度系统及方法 Pending CN104462370A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410748604.4A CN104462370A (zh) 2014-12-09 2014-12-09 分布式任务调度系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410748604.4A CN104462370A (zh) 2014-12-09 2014-12-09 分布式任务调度系统及方法

Publications (1)

Publication Number Publication Date
CN104462370A true CN104462370A (zh) 2015-03-25

Family

ID=52908405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410748604.4A Pending CN104462370A (zh) 2014-12-09 2014-12-09 分布式任务调度系统及方法

Country Status (1)

Country Link
CN (1) CN104462370A (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630614A (zh) * 2015-12-22 2016-06-01 世纪龙信息网络有限责任公司 批处理任务处理系统和方法
CN105700937A (zh) * 2016-01-04 2016-06-22 北京百度网讯科技有限公司 多线程任务处理方法和装置
CN105701257A (zh) * 2016-03-31 2016-06-22 北京奇虎科技有限公司 数据处理方法和装置
CN106227596A (zh) * 2016-07-13 2016-12-14 百度在线网络技术(北京)有限公司 用于任务调度服务器的任务监控方法和装置
CN106503017A (zh) * 2015-09-08 2017-03-15 摩贝(上海)生物科技有限公司 一种分布式爬虫系统任务抓取系统和方法
CN106802826A (zh) * 2016-12-23 2017-06-06 中国银联股份有限公司 一种基于线程池的业务处理方法及装置
WO2017114141A1 (en) * 2015-12-30 2017-07-06 Sengled Optoelectronics Co., Ltd Distributed task system and service processing method based on internet of things
CN108073447A (zh) * 2016-11-15 2018-05-25 平安科技(深圳)有限公司 基于多应用下的异步保险任务处理方法和装置
CN108234645A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种任务的处理方法和装置
CN108363713A (zh) * 2017-12-20 2018-08-03 武汉烽火众智数字技术有限责任公司 视频图像信息解析装置、系统及方法
CN108931526A (zh) * 2018-05-28 2018-12-04 中冶南方工程技术有限公司 基于多任务调度机制的带钢表面缺陷检测方法
CN110035103A (zh) * 2018-01-12 2019-07-19 宁波中科集成电路设计中心有限公司 一种节点间数据可传递的分布式调度系统
CN110362390A (zh) * 2019-06-06 2019-10-22 银江股份有限公司 一种分布式数据集成作业调度方法及装置
CN110362362A (zh) * 2019-07-24 2019-10-22 北京明略软件系统有限公司 任务调度方法及装置、存储介质、电子装置
CN110569252A (zh) * 2018-05-16 2019-12-13 杭州海康威视数字技术股份有限公司 一种数据处理系统及方法
CN110888721A (zh) * 2019-10-15 2020-03-17 平安科技(深圳)有限公司 一种任务调度的方法及相关装置
CN110895486A (zh) * 2018-09-12 2020-03-20 北京奇虎科技有限公司 分布式任务调度系统
CN111061458A (zh) * 2019-10-10 2020-04-24 武汉烽火信息集成技术有限公司 一种具有开放式流水线架构的应用创建系统
CN111274320A (zh) * 2020-01-17 2020-06-12 深圳市大富网络技术有限公司 分布式存储系统的控制方法、装置及分布式存储系统
CN111290854A (zh) * 2020-01-20 2020-06-16 腾讯科技(深圳)有限公司 任务管理方法、装置、系统、计算机存储介质及电子设备
WO2020124524A1 (zh) * 2018-12-21 2020-06-25 深圳鲲云信息科技有限公司 一种资源平台独享资源的方法、装置及电子设备
CN111866013A (zh) * 2020-07-29 2020-10-30 杭州安恒信息技术股份有限公司 一种云安全产品管理平台部署方法、装置、设备及介质
WO2020258665A1 (zh) * 2019-06-28 2020-12-30 深圳前海微众银行股份有限公司 一种分布式事务的流程保障方法及装置
CN112286631A (zh) * 2020-10-23 2021-01-29 烽火通信科技股份有限公司 一种Kubernetes资源调度方法、装置与电子设备
CN112579308A (zh) * 2019-09-27 2021-03-30 北京国双科技有限公司 任务处理方法及系统
CN113656166A (zh) * 2021-09-02 2021-11-16 上海联影医疗科技股份有限公司 一种任务处理系统及其计算资源分配方法
CN115256381A (zh) * 2022-07-19 2022-11-01 浙江国自机器人技术股份有限公司 机器人调度装置、系统和方法
CN115840631A (zh) * 2023-01-04 2023-03-24 中科金瑞(北京)大数据科技有限公司 基于raft的高可用分布式任务调度方法和设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1507597A (zh) * 2001-05-15 2004-06-23 �Ҵ���˾ 用于管理分布式事务内跨越多个dbms的分布式保存点的方法
CN1284094C (zh) * 2002-04-30 2006-11-08 电子科技大学 一种构建分布式并行调度网络服务器系统的方法
US7228284B1 (en) * 2001-06-27 2007-06-05 Xilinx, Inc. Method for routing and responding to sales leads between two organizations
CN102073540A (zh) * 2010-12-15 2011-05-25 北京新媒传信科技有限公司 分布式事务提交方法和装置
CN102752374A (zh) * 2012-06-15 2012-10-24 中国电力科学研究院 一种用电能效数据的储存访问系统及方法
CN103473119A (zh) * 2012-06-06 2013-12-25 百度在线网络技术(北京)有限公司 任务协作装置及方法
CN103559082A (zh) * 2013-11-04 2014-02-05 北京华胜天成科技股份有限公司 一种基于队列的分布式任务调度方法、装置及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1507597A (zh) * 2001-05-15 2004-06-23 �Ҵ���˾ 用于管理分布式事务内跨越多个dbms的分布式保存点的方法
US7228284B1 (en) * 2001-06-27 2007-06-05 Xilinx, Inc. Method for routing and responding to sales leads between two organizations
CN1284094C (zh) * 2002-04-30 2006-11-08 电子科技大学 一种构建分布式并行调度网络服务器系统的方法
CN102073540A (zh) * 2010-12-15 2011-05-25 北京新媒传信科技有限公司 分布式事务提交方法和装置
CN103473119A (zh) * 2012-06-06 2013-12-25 百度在线网络技术(北京)有限公司 任务协作装置及方法
CN102752374A (zh) * 2012-06-15 2012-10-24 中国电力科学研究院 一种用电能效数据的储存访问系统及方法
CN103559082A (zh) * 2013-11-04 2014-02-05 北京华胜天成科技股份有限公司 一种基于队列的分布式任务调度方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马玉军、陈连山: "《Red Hat Enterprise Linux 6.5系统管理》", 31 October 2014 *

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503017A (zh) * 2015-09-08 2017-03-15 摩贝(上海)生物科技有限公司 一种分布式爬虫系统任务抓取系统和方法
CN105630614A (zh) * 2015-12-22 2016-06-01 世纪龙信息网络有限责任公司 批处理任务处理系统和方法
CN105630614B (zh) * 2015-12-22 2019-01-11 世纪龙信息网络有限责任公司 批处理任务处理系统和方法
US10303509B2 (en) 2015-12-30 2019-05-28 Sengled Optoelectronics Co., Ltd. Distributed task system based on internet of things and service processing method for distributed tasks based on the same
WO2017114141A1 (en) * 2015-12-30 2017-07-06 Sengled Optoelectronics Co., Ltd Distributed task system and service processing method based on internet of things
CN105700937A (zh) * 2016-01-04 2016-06-22 北京百度网讯科技有限公司 多线程任务处理方法和装置
CN105701257A (zh) * 2016-03-31 2016-06-22 北京奇虎科技有限公司 数据处理方法和装置
CN105701257B (zh) * 2016-03-31 2019-05-21 北京奇虎科技有限公司 数据处理方法和装置
CN106227596A (zh) * 2016-07-13 2016-12-14 百度在线网络技术(北京)有限公司 用于任务调度服务器的任务监控方法和装置
CN108073447A (zh) * 2016-11-15 2018-05-25 平安科技(深圳)有限公司 基于多应用下的异步保险任务处理方法和装置
CN106802826A (zh) * 2016-12-23 2017-06-06 中国银联股份有限公司 一种基于线程池的业务处理方法及装置
CN108363713A (zh) * 2017-12-20 2018-08-03 武汉烽火众智数字技术有限责任公司 视频图像信息解析装置、系统及方法
CN108234645A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种任务的处理方法和装置
CN110035103A (zh) * 2018-01-12 2019-07-19 宁波中科集成电路设计中心有限公司 一种节点间数据可传递的分布式调度系统
CN110569252A (zh) * 2018-05-16 2019-12-13 杭州海康威视数字技术股份有限公司 一种数据处理系统及方法
CN108931526B (zh) * 2018-05-28 2021-02-09 中冶南方工程技术有限公司 基于多任务调度机制的带钢表面缺陷检测方法
CN108931526A (zh) * 2018-05-28 2018-12-04 中冶南方工程技术有限公司 基于多任务调度机制的带钢表面缺陷检测方法
CN110895486B (zh) * 2018-09-12 2022-08-12 北京奇虎科技有限公司 分布式任务调度系统
CN110895486A (zh) * 2018-09-12 2020-03-20 北京奇虎科技有限公司 分布式任务调度系统
WO2020124524A1 (zh) * 2018-12-21 2020-06-25 深圳鲲云信息科技有限公司 一种资源平台独享资源的方法、装置及电子设备
CN110362390A (zh) * 2019-06-06 2019-10-22 银江股份有限公司 一种分布式数据集成作业调度方法及装置
CN110362390B (zh) * 2019-06-06 2021-09-07 银江股份有限公司 一种分布式数据集成作业调度方法及装置
WO2020258665A1 (zh) * 2019-06-28 2020-12-30 深圳前海微众银行股份有限公司 一种分布式事务的流程保障方法及装置
CN110362362A (zh) * 2019-07-24 2019-10-22 北京明略软件系统有限公司 任务调度方法及装置、存储介质、电子装置
CN112579308A (zh) * 2019-09-27 2021-03-30 北京国双科技有限公司 任务处理方法及系统
CN111061458A (zh) * 2019-10-10 2020-04-24 武汉烽火信息集成技术有限公司 一种具有开放式流水线架构的应用创建系统
WO2021073414A1 (zh) * 2019-10-15 2021-04-22 平安科技(深圳)有限公司 一种任务调度的方法及相关装置
CN110888721A (zh) * 2019-10-15 2020-03-17 平安科技(深圳)有限公司 一种任务调度的方法及相关装置
CN111274320A (zh) * 2020-01-17 2020-06-12 深圳市大富网络技术有限公司 分布式存储系统的控制方法、装置及分布式存储系统
CN111274320B (zh) * 2020-01-17 2023-09-12 深圳市大富网络技术有限公司 分布式存储系统的控制方法、装置及分布式存储系统
CN111290854A (zh) * 2020-01-20 2020-06-16 腾讯科技(深圳)有限公司 任务管理方法、装置、系统、计算机存储介质及电子设备
CN111290854B (zh) * 2020-01-20 2024-03-15 腾讯云计算(北京)有限责任公司 任务管理方法、装置、系统、计算机存储介质及电子设备
CN111866013A (zh) * 2020-07-29 2020-10-30 杭州安恒信息技术股份有限公司 一种云安全产品管理平台部署方法、装置、设备及介质
CN112286631A (zh) * 2020-10-23 2021-01-29 烽火通信科技股份有限公司 一种Kubernetes资源调度方法、装置与电子设备
CN113656166A (zh) * 2021-09-02 2021-11-16 上海联影医疗科技股份有限公司 一种任务处理系统及其计算资源分配方法
CN115256381A (zh) * 2022-07-19 2022-11-01 浙江国自机器人技术股份有限公司 机器人调度装置、系统和方法
CN115840631A (zh) * 2023-01-04 2023-03-24 中科金瑞(北京)大数据科技有限公司 基于raft的高可用分布式任务调度方法和设备

Similar Documents

Publication Publication Date Title
CN104462370A (zh) 分布式任务调度系统及方法
CN106330769B (zh) 一种业务处理方法及服务器
US8584136B2 (en) Context-aware request dispatching in clustered environments
US8112659B2 (en) Reducing recovery time for business organizations in case of disasters
CN102375837B (zh) 数据采集系统和方法
US10362141B1 (en) Service group interaction management
US9577961B2 (en) Input/output management in a distributed strict queue
US10200295B1 (en) Client selection in a distributed strict queue
US10075549B2 (en) Optimizer module in high load client/server systems
US10313282B1 (en) Flexible middleware messaging system
US8825750B2 (en) Application server management system, application server management method, management apparatus, application server and computer program
CN113783922A (zh) 负载均衡的方法、系统和装置
CN105450618A (zh) 一种api服务器处理大数据的运算方法及其系统
CN101860493A (zh) 为客户端分配应用服务器地址的方法、服务器及系统
US9591101B2 (en) Message batching in a distributed strict queue
US11503109B2 (en) Processing an operation with a plurality of processing steps
US8671306B2 (en) Scaling out a messaging system
US9575820B2 (en) Client control in a distributed strict queue
CN115640110B (zh) 分布式云计算系统调度方法和装置
CN107612950A (zh) 一种提供服务的方法、装置、系统、电子设备
CN109213507A (zh) 一种升级方法及服务器
US11178197B2 (en) Idempotent processing of data streams
CN109327321B (zh) 网络模型业务执行方法、装置、sdn控制器及可读存储介质
US9577878B2 (en) Geographic awareness in a distributed strict queue
CN110620722A (zh) 一种订单处理的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150325

RJ01 Rejection of invention patent application after publication