CN108132830A - 一种任务调度方法、装置及系统 - Google Patents
一种任务调度方法、装置及系统 Download PDFInfo
- Publication number
- CN108132830A CN108132830A CN201611088406.5A CN201611088406A CN108132830A CN 108132830 A CN108132830 A CN 108132830A CN 201611088406 A CN201611088406 A CN 201611088406A CN 108132830 A CN108132830 A CN 108132830A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- cryptographic hash
- processing node
- task processing
- 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.)
- Granted
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种任务调度方法、装置及系统,方法应用于任务调度系统中的目标任务处理节点,包括:获取针对目标任务的任务处理请求;计算目标任务的标识信息的第一哈希值;将目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理目标任务的第一任务处理节点,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,封闭圆环是由第二哈希值确定的;将目标任务调度给第一任务处理节点,以使得第一任务处理节点对目标任务进行处理。应用本发明实施例,提高了任务处理的准确性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务调度方法、装置及系统。
背景技术
在当今高度信息化的社会里,为了满足不同用户的不同需求,产生了海量的定时任务,为了保证定时任务都能被处理,需要对任务进行调度,因此,任务调度系统应运而生。
现有的任务调度系统包括任务调度节点和至少两个任务处理节点,任务调度节点获取创建定时任务请求后,创建该定时任务,并将该定时任务记录在数据库中,任务处理节点在到达定时任务的执行时间时,通过获取锁的方式竞争任务的执行权,任务处理节点在获取锁后,从数据库获取该定时任务并处理,在该定时任务处理完成后,释放锁,以使得所有任务处理节点可以通过获取锁的竞争其他定时任务的执行权。
应用上述方式对任务进行调度,可以对定时任务进行处理,但同一时刻,如果存在多个定时任务需要处理,只有一个任务处理节点能获取锁,从数据库获取任务并执行,如果该任务处理节点没有释放锁,其他任务处理节点只能处于等待状态,不能对任务进行处理,定时任务只能一个一个地串行处理,这种通过获取锁的方式处理的效率比较低,导致任务不能准时被处理,降低了任务处理的准确性。
发明内容
本发明实施例的目的在于提供一种任务调度方法、装置及系统,以提高任务处理的准确性。
第一方面,为达到上述目的,本发明实施例公开了一种任务调度方法,应用于任务调度系统中的目标任务处理节点,所述任务调度系统包括任务处理节点集群,所述任务处理节点集群中存在至少两个任务处理节点,所述方法包括:
获取针对目标任务的任务处理请求;
计算所述目标任务的标识信息的第一哈希值;
将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值;
将所述目标任务调度给所述第一任务处理节点,以使得所述第一任务处理节点对所述目标任务进行处理。
第二方面,为达到上述目的,本发明实施例公开了一种任务调度装置,应用于任务调度系统中的目标任务处理节点,所述任务调度系统包括任务处理节点集群,所述任务处理节点集群中存在至少两个任务处理节点,所述装置包括:
第一获取模块,用于获取针对目标任务的任务处理请求;
第一计算模块,用于计算所述目标任务的标识信息的第一哈希值;
第一确定模块,用于将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值;
第一调度模块,用于将所述目标任务调度给所述第一任务处理节点,以使得所述第一任务处理节点对所述目标任务进行处理。
第三方面,为达到上述目的,本发明实施例公开了一种任务调度系统,所述任务调度系统包括任务处理节点集群,所述任务处理节点集群中存在至少两个任务处理节点,所述系统包括:
所述任务处理节点集群中的目标任务处理节点,用于获取针对目标任务的任务处理请求;计算所述目标任务的标识信息的第一哈希值;将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值;将所述目标任务调度给所述第一任务处理节点;
所述第一任务处理节点,用于对所述目标任务进行处理。
本发明实施例提供的一种任务调度方法、装置、系统及客户端,通过将不同的任务调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供任务调度方法的第一种流程示意图;
图2为本发明实施例提供的第一种封闭圆环的示意图;
图3为本发明实施例提供的第二种封闭圆环的示意图;
图4为本发明实施例提供任务调度方法的第二种流程示意图;
图5为本发明实施例提供的第三种封闭圆环的示意图;
图6为本发明实施例提供任务调度方法的第三种流程示意图;
图7为本发明实施例提供的第四种封闭圆环的示意图;
图8为本发明实施例提供任务调度方法的第四种流程示意图;
图9为本发明实施例提供任务调度装置的第一种结构示意图;
图10为本发明实施例提供任务调度装置的第二种结构示意图;
图11为本发明实施例提供任务调度装置的第三种结构示意图;
图12为本发明实施例提供任务调度装置的第四种结构示意图;
图13为本发明实施例提供任务调度系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例提供的任务调度方法优选应用于任务调度系统中的目标任务处理节点,任务调度系统包括任务处理节点集群,任务处理节点集群中存在至少两个任务处理节点,目标任务处理节点是任务处理集群其中的一个任务处理节点。
图1为本发明实施例提供任务调度方法的第一种流程示意图,方法包括:
S101:获取针对目标任务的任务处理请求。
需要说明的是,这里所说的目标任务可以为定时任务、周期性任务或一次性任务,定时任务和周期性任务是很多业务流程中必不可少的任务类型。示例性的,周期性任务可以为每个月发送电话费用的月结短信通知等等,定时任务可以为下午6:00向云平台发送带宽增大请求等等,一次性任务可以为将日志进行打包。周期性任务与定时任务的区别是,定时任务可能只处理一次,但周期性任务会按照固定的时间间隔处理该任务;当然,当定时任务需要周期性执行时,可以理解为该定时任务是定时的周期性任务,定时任务与一次性任务的区别是,定时任务会到达预设的时间点才会处理,而一次性任务是任务处理节点获取后立即处理的任务。
在本发明的一个优选实施例中,获取针对目标任务的任务处理请求,包括:
通过restful的API,获取客户端发送的创建目标任务的请求。
在本发明实施例中,目标任务处理节点通过restful(Representational StateTransfer,表述性状态转移)的API(Application Programming Interface,应用程序编程接口)获取客户端发送的所有请求。restful是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是restful,API是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
基于restful的API,客户端与目标任务处理节点之间的通信协议是http(HyperText Transfer Protocol,超文本传输协议),这样用户可以灵活地传入处理任务所需的定制化参数。在本发明实施例中,通过restful的API可以跨越语言平台,不同的语言均可以实现http请求。在现有技术中,当前用的比较普遍的任务调度系统包括Linux自带的Crontab和java的Quartz(扩特兹),以及Python平台下的APScheduler,其中Linux的Crontab主要用于在特定的时间下触发脚本的执行,如每天00:00的时候将日志进行打包等,但Quartz只能在Java平台下使用,APScheduler只能在python语言的平台下使用,Crontab则只能在Linux系统下使用。Quartz是一个开源的定时任务调度框架,既可以单独使用也可以集成到J2EE(Java 2Platform Enterprise Edition,Java2平台企业版)和J2SE(Java2StandardEdition,Java2标准版)中使用,支持语言为Java,Java是一门面向对象编程语言。APScheduler是类似Quartz的开源任务调度框架,支持语言为Python,Python是一种面向对象的解释型计算机程序设计语言。Crontab是用来让使用者在固定时间或固定间隔执行程序,Linux是一套免费使用和自由传播的类Unix操作系统。需要说明的是,在本发明实施例中所说的任务处理节点可以理解为是APScheduler节点。
具体的,在本发明实施例中,任务处理请求可以是http请求,该任务处理请求头包含请求的参数、URL(Uniform Resource Locator,统一资源定位符)、协议版本等信息。
在本发明一个具体实施例中,所述通过restful的API,获取客户端发送的创建目标任务的请求,包括:
通过restful的API,获取客户端发送的、并由所述负载均衡集群转发的针对目标任务的任务处理请求。
负载均衡提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡集群中包含了一台或多台服务器,负载均衡集群中的服务器之间通过网络实现进行进程间的通信,主要用于负责多个任务处理节点之间实现请求合理的分配,使这些任务处理节点不会出现因某一个超负荷、而其他的任务处理节点却没有充分发挥处理能力的情况。在本发明实施例中,负载均衡集群接收到客户端发送的针对目标任务的任务处理请求,根据任务处理节点集群中各个任务处理节点的负载情况选择一个任务处理节点作为目标任务处理节点,将针对目标任务的任务处理请求发送给该目标任务处理节点,通过负载均衡集群,可以实现任务处理节点的负载均衡,提高任务调度系统的可靠性。在实际应用中,负载均衡可以通过已有的成熟方案做到高可靠性。
在本发明的一个具体实施例中,所述通过restful的API,获取客户端发送的针对目标任务的任务处理请求,包括:
通过restful的API,获取客户端通过所述客户端安装的SDK发送的针对目标任务的任务处理请求,其中,所述SDK用于实现所述客户端与所述任务调度系统的交互。
SDK(Software Development Kit,软件开发工具包)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。一般而言,SDK即开发Windows(视窗操作系统)平台下的应用程序所使用的SDK,可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。在本发明实施例中,SDK主要用于实现所述客户端与所述任务调度系统的交互。SDK可以直接调用rsetful的API,客户端可以通过代码级别的调用来使用任务调度系统。
S102:计算所述目标任务的标识信息的第一哈希值。
目标任务的标识信息是目标任务处理节点生成的,进一步的,目标任务处理节点使用UUID(Universally Unique Identifier,通用唯一识别码)生成目标任务的标识信息。
在本发明实施例中,利用哈希算法计算目标任务的标识信息可以得到第一哈希值。本领域内的技术人员可以理解的是,哈希算法可以将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。需要说明的是,虽然目标任务的标识信息是唯一的,但由该标识信息计算得到的第一哈希值可能不是唯一值,即使第一哈希值可能重复,但不会对任务调度的正确性产生影响。
S103:将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值。
在本发明实施例中,封闭圆环是任务处理节点的标识信息的第二哈希值按照一定的顺序首尾相连得到的,示例性的,封闭圆环可以如图2所示。封闭圆环上每一个点对应着一个哈希值,封闭圆环上最多可以有232个哈希值,当然还可以具有更多哈希值,本发明并不对此进行限定,图2所示的封闭圆环上,节点1所在的点对应的哈希值是任务处理节点1的第二哈希值,……,依次类推,节点4所在的点对应的哈希值是任务处理节点4的第二哈希值。各个任务处理节点的第二哈希值是利用哈希算法计算该任务处理节点的表标识信息得到第二哈希值,任务处理节点的标识信息可以为任务处理节点的IP(Internet Protocol,网络之间的互联协议)地址,也可以为任务处理节点的host name(主机名)。需要说明的是,这里所说的封闭圆环可以理解为哈希环。
根据图2,有4个任务处理节点,分别为节点1-4,假设节点1所在的点对应的第二哈希值为哈希值A、节点2所在的点对应的第二哈希值为哈希值B、节点3所在的点对应的第二哈希值为哈希值C,节点4所在的点对应的第二哈希值为哈希值D。则各个任务处理节点的哈希值分区可以如表1所示。
表1
任务处理节点 | 哈希值分区 |
节点1 | [A,C) |
节点2 | [B,D) |
节点3 | [C,B) |
节点4 | [D,A) |
基于图2,各个任务处理节点的哈希值分区还可以如表2所示。
表2
任务处理节点 | 哈希值分区 |
节点1 | (C,A] |
节点2 | (D,B] |
节点3 | (B,C] |
节点4 | (A,D] |
在实际应用中,基于各个任务处理节点的第二哈希值和一致性哈希算法,可以得到图2所示的封闭性圆环,该封闭的圆环是将整个哈希值空间组织成一个虚拟的圆环,该圆环是按顺时针方向组织的。一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题。在本发明实施例中,基于各个任务处理节点的第二哈希值和一致性哈希算法确定所有任务处理节点的哈希值分区的方法为:计算得到各个任务处理节点的第二哈希值,并将各个第二哈希值映射到封闭的圆环上,如图2所示,按照顺时针方向,确定所有任务处理节点的哈希值分区,确定的哈希值分区如表2所示。
在本发明的一个具体实施例中,所述任务处理节点集群中每一任务处理节点设置有至少一个虚拟节点;
所述封闭圆环是由所述第二哈希值和各个虚拟节点对应的第三哈希值确定的,其中,所述第三哈希值为虚拟节点的标识信息的哈希值;
每个任务处理节点的哈希值分区由第一哈希值子分区和第二哈希值子分区组成,其中,所述第一哈希值子分区由该任务处理节点的第二哈希值确定,第二哈希值子分区由该任务处理节点对应的虚拟节点的第三哈希值确定。
根据任务处理节点的第二哈希值确定的哈希值分区,可能导致大量的任务调度给一个任务处理节点,为了解决这种任务数量倾斜问题,引入了虚拟节点机制,对每一个任务处理节点设置至少一个虚拟节点。针对不同的任务处理接待可以设置相同数量的虚拟节点,也可以设置不同数量的虚拟节点。虚拟节点的标识信息与其对应的任务处理节点的标识信息存在一定的联系,例如任务处理节点的标识信息是192.168.1.100,则其对应的虚拟节点的标识信息可以为192.168.1.100#1。利用哈希算法,计算虚拟节点的标识信息可以得到第三哈希值。这里所说的虚拟节点与任务处理节点一样,虚拟节点的标识信息的第三哈希值会在封闭圆环上占据一个键值,在实际应用中,虚拟节点也会接受任务的调度,当任务调度给该虚拟节点处理,实际上是该虚拟节点对应的任务处理节点对任务进行处理,即可以理解为该虚拟节点对应的哈希值分区是任务处理节点的第二哈希值子分区,当任务的第一哈希值与虚拟节点的哈希值分区相匹配,则将该任务调度给该虚拟节点对应的任务处理节点处理。引入虚拟节点,能够提高命中任务处理节点的概率,确保任务调度的均衡性。
示例性的,有4个任务处理节点,这4个任务处理节点是图2所示的任务处理节点,每一个任务处理节点设置有一个虚拟节点,分别为节点1对应的节点1-1,节点2对应的节点2-1,节点3对应的节点3-1,节点4对应的节点4-1。根据4个任务处理节点的第二哈希值和4个虚拟节点对应的第三哈希值确定的封闭圆环可以如图3所示。
根据图3,假设节点1-1所在的点对应的第三哈希值为哈希值E、节点2-1所在的点对应的第三哈希值为哈希值F、节点3-1所在的点对应的第三哈希值为哈希值G,节点4-1所在的点对应的第三哈希值为哈希值H。则各个任务处理节点的第一子哈希值分区可以如表3所示。
表3
任务处理节点 | 第一哈希值子分区 |
节点1 | (H,A] |
节点2 | (D,B] |
节点3 | (F,C] |
节点4 | (G,D] |
虚拟节点对应的第二子哈希值分区可以如表4所示。
表4
虚拟节点 | 第二哈希值子分区 |
节点1-1 | (B,E] |
节点2-1 | (E,F] |
节点3-1 | (A,G] |
节点4-1 | (C,H] |
根据表3和表4可知,节点1的哈希值分区为(H,A]和(B,E];节点2的哈希值分区为(D,B]和(E,F];节点3的哈希值分区为(F,C]和(A,G];节点4的哈希值分区为(G,D]和(C,H]。
将目标任务的第一哈希值与哈希值分区进行匹配,即确定该第一哈希值落入哪个哈希值分区,第一哈希值落入的哈希值分区对应的任务处理节点是第一任务处理节点。在实际应用中,可以也将目标任务的第一哈希值映射到该封闭的圆环上,映射到的位置开始顺时针查找,查找到的第二哈希值对应的任务处理节点为第一任务处理节点。需要说明的是,第一任务处理节点可以为目标任务处理节点。
S104:将所述目标任务调度给所述第一任务处理节点,以使得所述第一任务处理节点对所述目标任务进行处理。
在实际应用中,目标任务处理节点将调度给第一任务处理节点具体为:目标任务处理节点创建该目标任务,将目标任务的信息存储到数据库中,目标任务的信息包括目标任务的类型,具体内容,处理该目标任务的第一任务处理节点等等,第一任务处理节点在获知自身处理该目标任务之后,从数据库获取该目标任务。这里所说的数据库可以是Redis,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键-值)数据库,并提供多种语言的API。ANSI C是C语言的标准,任何C语言的编译器都在ANSI C的基础上扩充。将目标任务存储在Redis中,是为了持久化,这样即使第一任务处理节点宕机,目标任务的相关数据也不会丢失,能够保证任务都能被处理。
第一任务处理节点获取到目标任务之后,根据目标任务的任务类型,调用对应的插件执行该目标任务,示例性的,第一任务处理节点中安装有http回调功能的插件,目标任务为每天下午6:00向云平台发送一次带宽增大请求以确保用户的云主机在下班的高峰期有大量的访问时,有足够的带宽,每天下午12:00向云平台发送一次带宽调低请求,以避免带宽资源浪费。在每天下午的6:00,第一任务处理节点户调用http回调功能的插件向云平台发送http请求,以使得云平台接收该http请求后,增大云主机的带宽。在每天下午的12:00,第一任务处理节点户调用http回调功能的插件向云平台发送http请求,以使得云平台接收该http请求后,减小云主机的带宽。在本发明实施例中,插件可以根据用户的实际需求定制,将定制好的插件安装在任务处理节点。在实际应用中,插件可以以python实现。
在本发明的一个具体实施例中,所述对所述目标任务进行处理,包括:
向所述客户端发送所述目标任务的处理请求,以使所述客户端通过所述SDK,调用与所述目标任务具有关联关系的程序,对所述目标任务进行处理。
在实际应用中,当目标任务是定时任务或周期性的任务时,第一任务处理节点获取的目标任务可以是Crontab语法定义的触发器。在客户端调用SDK向任务调度系统发送任务处理请求时,SDK会创建监听端口,目标任务处理节点会该任务处理请求的源地址和端口号记录在数据库中目标任务对应的信息中,当第一任务处理节点中的目标任务对应的触发器被触发时,向客户端发送目标任务的处理请求,该处理请求是socket(套接字)请求,应用程序通常通过“socket”向网络发出请求或者应答网络请求,该socket请求中包含有该任务处理请求的源地址和端口号。SDK中的监听窗口会监听到该处理请求时,调用与目标任务具有关联关系的程序,对目标任务进行处理。这里所说的与目标任务具有关联关系的程序,是能处理该目标任务的程序,即可以调用用户代码的注册方法进行调用,处理该目标任务。通过客户端中的SDK调用程序对任务进行处理,客户端与任务调度系统相互分离,互不受影响,任务调度系统可以维护触发器,当触发器在客户端时,客户端宕机重启后,数据丢失,导致任务不能被准时处理,当由任务调度系统维护触发器时,可以不受客户端的影响,提高了任务执行的可靠性。第一任务处理节点注册有触发器,向触发器被触发时,向客户端一任务处理节点向客户端发送处理请求,使得客户端处理自身的任务,这样客户端可以自己定义任务。
在当前的互联网和云计算的背景下,业务量巨大,如Quartz等现有的任务调度系统中同时只能存在一个任务处理节点能够处理任务,单个任务处理节点并不能满足有大量定时任务的调度和执行,并且不能满足任务被正确准时执行的可靠性要求。而在本发明实施例中,有多个任务处理节点可以处理任务,满足了任务被正确准时执行的可靠性要求。
在实际应用中,目标任务处理节点在获取到客户端发送的针对任务列表的获取请求后,从数据库获取该任务列表,并将该任务列表反馈给客户端。这里所说的任务列表可以记载了任务具体内容、处理该任务的任务处理节点等等,上述所说的记录任务的信息可以理解为将任务的信息记录在任务列表中。向客户端反馈的任务列表可以是任务调度系统中所有任务的列表,也可以是针对该客户端的任务列表。
在现有技术中,Quartz虽然目前已有集群模式,但是对于横向扩展的支持较低,而且只能支持持久化到数据库里面的任务,对于多节点的任务执行是通过获取数据库锁的方式来获取任务的执行权;为了满足任务可靠性和稳定性,目前网上已有通过使用类似Quartz集群的方式来实现APScheduler的多任务处理节点集群方案,即通过获取锁的方式来竞争任务的执行权。综上所述,APScheduler和Quartz虽然可以通过共享数据库,利用加锁的方式竞争任务的处理权来实现集群模式,但是加锁方式效率低下,任务并不能很好的被均衡到各个节点执行。并且对于同一个时间点的任务,只支持串行执行,即,若00:00有10个任务需要执行,Quartz的集群无论有多少个节点,这些任务都只能被串行的一个一个执行。APScheduler或Quartz在通过获取锁的方式对任务进行处理时,在实际应用中,APScheduler或Quartz中的任务处理节点中保存的任务信息需要一致,才能同时去竞争某个时刻的任务处理权,但这种方式任务处理节点的资源去存储一些自身可能并不会处理的任务的信息。在本发明实施例中,在对任务进行处理的时候不需要获取锁,是每一个任务处理节点处理自身获取的任务,任务处理的准确性提高,同时根据任务的第一哈希值与所有任务处理节点的哈希值分区,进行调度任务,使得任务能很好的被均衡到各个任务处理节点执行,同时也提高了任务调度系统的可靠性,而且,任务处理节点只存储自身处理的任务信息,不会造成资源的浪费。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。
图4为本发明实施例所提供的任务调度方法的第二种流程示意图。基于图1所提供的实施例,本发明实施例所提供的一种任务调度方法,在S104之后,还包括S105、S106、S107、S108和S109,其中,
S105:监听是否存在从任务处理节点退出所述任务处理节点集群。
在本发明的一个优选实施例中,任务处理节点集群中包括一个主任务处理节点和至少一个从任务处理节点;当目标任务处理节点是所述主任务处理节点时,执行步骤S105-S109。
在实际应用中,根据任务调度系统的集群管理功能,在任务处理节点集群中选择一个作为主任务处理节点,其他的任务处理节点自动成为从任务处理节点,具体的,可以通过ZooKeeper的集群管理功能确定主任务处理节点,进一步可以通过选举的方式确定主任务处理节点,具体的,通过选举的方式确定主任务处理节点是现有技术,在这里不进行赘述。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是GoogleChubby的开源实现,主要是给分布式应用提供一致性服务的软件系统。其提供的功能主要包括:配置维护、域名服务、分布式同步、集群管理等。
在实际应用中,APScheduler或Quartz,是通过竞争任务的处理权串行地对任务进行处理,这种对任务的处理方法导致该任务调度系统的水平扩展能力非常有限,难以应对需要处理大量定时任务的场景。同时,在现有的任务调度系统中,还可以只包含一个任务处理节点,即单个任务处理节点的任务调度系统,但这种任务调度系统缺失了高可用性,丧失了可靠性和扩展性。在本发明实施例中,任务调度系统中,有一个主任务处理节点和至少一个从任务处理节点,可以通过任务集群管理功能方便地扩展任务处理节点,实现任务调度系统的横向扩展。在本发明实施例中,当主任务处理节点退出任务处理节点集群,会在从任务处理节点中选举出新的主任务处理节点,新的主任务处理节点会重新调度已经宕机的主任务处理节点上的任务;当从任务处理节退出任务处理节点集群,主任务处理节点将退出的从任务处理节点上的任务调度给其他的任务处理节点处理,因此,本发明实施例提供的方法使得任务调度系统具有可靠性。另外,本发明实施例提供的方法还可以根据任务处理节点的负载,弹性增加或减少任务处理节点的数量,减少任务处理节点的资源的浪费,能够应对需要处理大量定时任务的场景。
在实际应用中,目标任务处理节点可以监听各个从任务处理节点的工作状态,示例性的,可以向各个从任务处理节点发送工作状态确认请求,当然可以通过其他方式监听各个从任务节点的工作状态。需要说明的是,任务处理节点集群中的任务处理节点处于相互监听的状态,当从任务处理节点监听到主任务处理节点退出任务处理节点集群时,重新确定新的主任务处理节点。
在本发明的一个优选的实施例中,所述任务调度系统还包括:用于监听任务处理节点工作状态的ZooKeeper节点;
所述监听是否存在从任务处理节点退出所述任务处理节点集群,包括:
根据所述ZooKeeper节点针对任务处理节点工作状态的监听结果,判断是否存在从任务处理节点退出所述任务处理节点集群。
在实际应用中,ZooKeeper节点记录了任务处理节点集群中各个任务处理节点的工作状态,这里所说的工作状态包括该任务处理节点是否在任务处理节点集群中,处理的任务、该任务处理节点的第二哈希值等等。需要说明的是,这里所说的ZooKeeper节点可以理解为是ZooKeeper节点集群。
在实际应用中,目标任务处理节点实时监听ZooKeeper节点中记录的各个任务处理节点的工作状态,根据对任务处理节点的工作状态的监听结果,判断是否存在从任务处理节点退出任务处理节点集群。任务处理节点集群中的任一任务处理节点可以通过修改ZooKeeper节点中记录的数据来达到与其他任务处理节点通信的。
S106:更新第一邻居任务处理节点的哈希值分区,其中,所述第一邻居任务处理节点是根据已退出的任务处理节点的标识信息的哈希值确定的。
当有从任务处理节点退出任务处理节点集群时,需要更新第二邻居任务处理节点的哈希值分区,当该已退出的任务处理节点存在虚拟节点时,还需要确定虚拟节点的第一邻居任务处理节点的哈希值分区,这样确保了任务调度系统能够方便的进行横向扩展和任务处理的可靠性,减少了因任务处理节点的退出导致的任务调度的抖动。
示例性的,如图2所示,退出的从任务处理节点是图2的节点3,则封闭的圆环如图5所示。节点3的标识信息的第二哈希值是哈希值C,根据哈希值C确定的第一邻居节点为节点1和节点2,因为需要更新节点2和节点的哈希值分区,以表2所示的哈希值分区为例,更新后的第一邻居任务处理节点的哈希值分区如表5所示。
表5
任务处理节点 | 哈希值分区 |
节点1 | (B,A] |
节点2 | (D,B] |
S107:在已退出的任务处理节点上存在未完成的第一任务时,获取所述第一任务的标识信息的第四哈希值。
在实际应用中,可以从Redis中获取第一任务的标识信息的第四哈希值。Redis中记录了有关任务方方面面的信息。
S108:将所述第四哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第一任务的第二任务处理节点。
需要说明的是,这里将第四哈希值与当前所有任务处理节点的哈希值分区匹配的方法与上述S103中的匹配方法相同,在这里不进行赘述。
S109:将所述第一任务调度给所述第二任务处理节点,以使得所述第二任务处理节点对所述第一任务进行处理。
在实际应用中,当将第一任务调度给第二任务处理节点时,需要将Redis中的第一任务的任务处理节点更改为该第二任务处理节点,进一步的,将任务列表中的第一任务的任务处理节点更改为该第二任务处理节点。
这里所说的第二任务处理节点可以为目标任务处理节点,在本发明实施例中,将第一任务调度给第二任务处理节点与第二任务处理节点对第一任务进行处理的方法,与上述S104中的方法分别相同,在这里不进行赘述。需要说明的是,当已退出的任务处理节点中不止一个任务时,需要重复执行S107-S109,直至该退出的任务处理节点上所有任务都被调度给其他的任务处理节点处理。
在现有技术中的任务调度系统,不支持横向扩展,或者没法做到真正并发,示例性的,Crontab不支持多节点和集群,所以无法进行横向扩展。在本都忙实施例中吗,通过管理集群功能,并产生主任务处理节点,方便的横向扩展集群节点,可弹性扩展任务处理节点的数据。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。将已退出的任务处理节点的任务调度给其他的任务处理节点执行,确保了任务调度系统能够方便的进行横向扩展和任务处理的可靠性。
图6为本发明实施例所提供的任务调度方法的第三种流程示意图。基于图4所提供的实施例,本发明实施例所提供的一种任务调度方法,在S109之后,还包括S110、S111、S112和S113,其中,
S110:监听到有新增的任务处理节点加入所述任务处理节点集群时,根据哈希算法,计算新增的任务处理节点的标识信息的第五哈希值。
在实际应用中,当有新增的任务处理节点加入任务处理节点集群时,目标任务处理节点监到这一信息,具体的,目标任务处理节点感知新增的任务处理节点的加入,进一步的,当有新增的任务处理节点加入任务处理节点集群时,ZooKeeper节点中会记录该新增的任务处理节点信息,当目标任务处理节点监听有新增的任务处理节点后,从ZooKeeper节点获取新增的任务处理节点的标识信息,根据哈希算法,计算新增的任务处理节点的标识信息的第五哈希值。
S111:根据所述第五哈希值,确定所述新增的任务处理节点的第二邻居任务处理节点。
以图2为例,假设新增的任务处理节点是节点5,则在本发明实施例中,封闭的圆环如图7所示。
以图7和表5为例,确定的节点5的第二邻居任务处理节点是节点2和节点3。需要说明的是,当任务处理节点存在虚拟节点时,如果新增的任务处理节点的邻居节点是虚拟节点时,因为每一虚拟节点还对应一个任务处理节点,可以根据虚拟节点与任务处理节点的对应关系,确定的新增的任务处理节点的第二邻居任务处理节点。
S111:根据所述第五哈希值,更新所述第二邻居任务处理节点的哈希值分区,并确定所述新增的任务处理节点的哈希值分区。
假设节点5对应的第五哈希值为哈希值J,以表2为例,更新后的第二邻居任务处理节点的哈希值分区如表6所示。
表6
任务处理节点 | 哈希值分区 |
节点2 | (D,B] |
节点3 | (J,C] |
更新第二邻居任务处理节点的哈希值分区,能够保证后续任务调度的正确性。
基于图7,根据第五哈希值,确定的节点5的哈希值分区为(B,J]。
S113:将所述第二邻居任务处理节点的未完成任务中,任务的标识信息的哈希值与所述新增的任务处理节点的哈希值分区相匹配的任务调度至所述新增的任务处理节点。
具体的,可以从Redis中获取的第二邻居任务处理节点中任务的标识信息的哈希值,将获取到的哈希值与新增的任务处理节点的哈希值分区进行匹配,将与该新增的任务处理节点的哈希值分区匹配成功的哈希值对应的任务调度给该新增的任务处理节点。
需要说明的,这里所说的未完成的任务包含正在处理的定时任务或周期性任务,不包含一次性任务,当需要调度给新增的任务处理节点处理的任务中包含正在处理的定时任务或周期性任务时,等到该任务在当前的任务处理节点处理完成后,再将该任务调度给新增的任务处理节点处理。这里所说的正在处理的定时任务是此次处理完成后,在下一个触发时间点,需要再次处理的任务。
具体的,将任务调度给新增的任务处理节点的方法可以为:新增的任务处理节点监听到将任务调度给自身的信息,从Redis中获取调度给新增的任务处理节点的任务,同时,第二邻居任务处理节点将调度给新增的任务处理节点的任务删除。
将任务调度给新增的任务处理节点的方法也可以为:新增的任务处理节点监听到将任务调度给自身的信息,与第二邻居任务处理节点进行通信,从第二邻居任务处理节点获取调度给自身的任务,同时,第二邻居任务处理节点将调度给新增的任务处理节点的任务删除。第二邻居任务处理节点将调度给新增的任务处理节点的任务删除,可以避免任务重复的执行。
当然,并不仅限于上述两种调度方法。在实际应用中,当将任务调度给新增的任务处理节点时,需要将Redis中的该任务的任务处理节点更改为新增的任务处理节点,进一步的,将任务列表中的该任务的任务处理节点更改为该新增的任务处理节点。
在本发明实施例中,当任务处理节点集群负载过高,导致任务不能准时处理时,可以直接加入新的任务处理节点,目标任务处理节点将任务进行均衡,以确保任务处理节点间的负载均衡。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。
图8为本发明实施例所提供的任务调度方法的第四种流程示意图。基于图1所提供的实施例,本发明实施例所提供的一种任务调度方法,在S104之后,还包括S114、S115、S116、S117、S118、S119和S120,其中,
S114:获取针对第二任务的删除请求。
S115:基于所述删除请求,获得所述第二任务的标识信息的第六哈希值。
在实际应用中,删除请求可以包含第二任务的标识信息,根据哈希算法,计算第二任务的标识信息的哈希值得到第六哈希值,还可以在接收该删除请求后,从Redis中获得第二任务的标识信息的第六哈希值。
S116:将所述第六哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第二任务的第四任务处理节点。
将第六哈希值与当前所有任务处理节点的哈希值分区进行匹配的方法与S103中的匹配方法相同,在这里不进行赘述。
S117:判断所述第四任务处理节点是否为所述目标任务处理节点。
S118:删除所述第二任务。
当第四任务处理节点为目标任务处理节点,删除第二任务,同时删除Redis中第二任务,进一步的,删除Redis中任务列表中第二任务。
S119:向所述第四任务处理节点发送删除所述第二任务的删除指令。
当第四任务处理节点不是目标任务处理节点时,向第四任务处理节点发送针对第二任务的删除指令,第四任务处理节点将接收到删除请求后,删除第二任务,Redis中记录的第二任务可以由目标任务处理节点删除,与可以由第四任务处理节点删除,具体的,可以根据实际情况而定。
S120:接收所述第四任务处理节点反馈的已删除所述第二任务的确认信息。
在实际应用中,第四任务处理节点删除第二任务后,向目标任务处理节点反馈确定信息,目标任务处理节点接收到确定信息后,向客户端反馈已经删除第二任务的信息。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。
与图1所示的方法实施例相对应,图9为本发明实施例提供的任务调度装置的第一种结构示意图,该装置应用于任务调度系统中的目标任务处理节点,任务调度系统包括任务处理节点集群,任务处理节点集群中存在至少两个任务处理节点,装置可以包括:第一获取模块201、第一计算模块202、第一确定模块203和第一调度模块204。
第一获取模块201,用于获取针对目标任务的任务处理请求。
在本发明的一个具体实施例,所述第一获取模块201,用于:
通过restful的API,获取客户端发送的针对目标任务的任务处理请求。
在本发明的一个具体实施例,所述任务调度系统还包括负载均衡集群;
所述第一获取模块201,具体用于:
通过restful的API,获取客户端发送的、并由所述负载均衡集群转发的针对目标任务的任务处理请求。
在本发明的一个具体实施例,所述第一获取模块201,具体用于:
通过restful的API,获取客户端通过所述客户端安装的SDK发送的针对目标任务的任务处理请求,其中,所述SDK用于实现所述客户端与所述任务调度系统的交互。
第一计算模块202,用于计算所述目标任务的标识信息的第一哈希值。
第一确定模块203,用于将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值。
在本发明的一个优选的实施例中,所述任务处理节点集群中每一任务处理节点设置有至少一个虚拟节点;
所述封闭圆环是由所述第二哈希值和各个虚拟节点对应的第三哈希值确定的,其中,所述第三哈希值为虚拟节点的标识信息的哈希值;
每个任务处理节点的哈希值分区由第一哈希值子分区和第二哈希值子分区组成,其中,所述第一哈希值子分区由该任务处理节点的第二哈希值确定,第二哈希值子分区由该任务处理节点对应的虚拟节点的第三哈希值确定。
第一调度模块204,用于将所述目标任务调度给所述第一任务处理节点,以使得所述第一任务处理节点对所述目标任务进行处理。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。
与图4所示的方法实施例相对应,图10为本发明实施例提供的任务调度装置的第二种结构示意图,任务处理节点集群中包括一个主任务处理节点和至少一个从任务处理节点;当所述目标任务处理节点是所述主任务处理节点时,该装置还可以包括:监听模块205、第一更新模块206、第二获取模块207、第二确定模块208和第二调度模块209。
监听模块205,用于监听是否存在从任务处理节点退出所述任务处理节点集群。
在本发明的一个具体实施例中,所述任务调度系统还包括:用于监听任务处理节点工作状态的ZooKeeper节点;
所述监听模块205,具体用于:
根据所述ZooKeeper节点针对任务处理节点工作状态的监听结果,判断是否存在从任务处理节点退出所述任务处理节点集群。
第一更新模块206,用于在所述监听模块的监听结果为存在的情况下,更新第一邻居任务处理节点的哈希值分区,其中,所述第一邻居任务处理节点是根据已退出的任务处理节点的标识信息的哈希值确定的。
第二获取模块207,用于在已退出的任务处理节点上存在未完成的第一任务时,获取所述第一任务的标识信息的第四哈希值。
第二确定模块208,用于将所述第四哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第一任务的第二任务处理节点。
第二调度模块209,用于将所述第一任务调度给所述第二任务处理节点,以使得所述第二任务处理节点对所述第一任务进行处理。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。将已退出的任务处理节点的任务调度给其他的任务处理节点执行,确保了任务调度系统能够方便的进行横向扩展和任务处理的可靠性。
与图6所示的方法实施例相对应,图11为本发明实施例提供的任务调度装置的第三种结构示意图,该装置还可以包括:第二计算模块210、第三确定模块211、第二更新模块212和第三调度模块213。
第二计算模块210,用于在监听到有新增的任务处理节点加入所述任务处理节点集群时,根据哈希算法,计算新增的任务处理节点的标识信息的第五哈希值;
第三确定模块211,用于根据所述第五哈希值,确定所述新增的任务处理节点的第二邻居任务处理节点;
第二更新模块212,用于根据所述第五哈希值,更新所述第二邻居任务处理节点的哈希值分区,并确定所述新增的任务处理节点的哈希值分区;
第三调度模块213,用于将所述第二邻居任务处理节点的未完成任务中,任务的标识信息的哈希值与所述新增的任务处理节点的哈希值分区相匹配的任务调度至所述新增的任务处理节点。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。
与图8所示的方法实施例相对应,图12为本发明实施例提供的任务调度装置的第四种结构示意图,该装置还可以包括:第三获取模块214、获得模块215、第四确定模块216、判断模块217、删除模块218、发送模块219和接收模块220。
第三获取模块214,用于获取针对第二任务的删除请求。
获得模块215,用于基于所述删除请求,获得所述第二任务的标识信息的第六哈希值。
第四确定模块216,用于将所述第六哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第二任务的第四任务处理节点。
判断模块217,用于判断所述第四任务处理节点是否为所述目标任务处理节点.
删除模块218,用于在所述判断模块217的判断结果为是的情况下,删除所述第二任务。
发送模块219,用于在所述判断模块217的判断结果为否的情况下,向所述第四任务处理节点发送删除所述第二任务的删除指令;
接收模块220,用于接收所述第四任务处理节点反馈的已删除所述第二任务的确认信息。
应用本发明实施例,通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。
本发明实施例还提供了一种任务调度系统,参见图13,图13为本发明实施例提供的一种任务调度系统的结构示意图,所述任务调度系统包括任务处理节点集群,所述任务处理节点集群中存在至少两个任务处理节点,系统包括:
所述任务处理节点集群中的目标任务处理节点,用于获取针对目标任务的任务处理请求;计算所述目标任务的标识信息的第一哈希值;将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值;将所述目标任务调度给所述第一任务处理节点;
所述第一任务处理节点,用于对所述目标任务进行处理。
具体的,所述任务处理节点集群中每一任务处理节点设置有至少一个虚拟节点;
所述封闭圆环是由所述第二哈希值和各个虚拟节点对应的第三哈希值确定的,其中,所述第三哈希值为虚拟节点的标识信息的哈希值;
每个任务处理节点的哈希值分区由第一哈希值子分区和第二哈希值子分区组成,其中,所述第一哈希值子分区由该任务处理节点的第二哈希值确定,第二哈希值子分区由该任务处理节点对应的虚拟节点的第三哈希值确定。
具体的,所述任务处理节点集群中包括一个主任务处理节点和至少一个从任务处理节点;当所述目标任务处理节点是所述主任务处理节点时,所述目标任务处理节点,还用于监听是否存在从任务处理节点退出所述任务处理节点集群;若存在,更新第一邻居任务处理节点的哈希值分区,其中,所述第一邻居任务处理节点是根据已退出的任务处理节点的标识信息的哈希值确定的;在已退出的任务处理节点上存在未完成的第一任务时,获取所述第一任务的标识信息的第四哈希值;将所述第四哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第一任务的第二任务处理节点;将所述第一任务调度给所述第二任务处理节点;
所述第二任务处理节点对所述第一任务进行处理。
具体的,所述任务调度系统还包括:用于监听任务处理节点工作状态的ZooKeeper节点;
所述ZooKeeper节点,用于记录所述任务处理节点集群中的每一任务处理节点的工作状态;
所述目标任务处理节点,用于根据所述ZooKeeper节点针对任务处理节点工作状态的监听结果,判断是否存在从任务处理节点退出所述任务处理节点集群。
具体的,所述目标任务处理节点,还用于监听到有新增的任务处理节点加入所述任务处理节点集群时,根据哈希算法,计算新增的任务处理节点的标识信息的第五哈希值;根据所述第五哈希值,确定所述新增的任务处理节点的第二邻居任务处理节点;根据所述第五哈希值,更新所述第二邻居任务处理节点的哈希值分区,并确定所述新增的任务处理节点的哈希值分区;将所述第二邻居任务处理节点的未完成任务中,任务的标识信息的哈希值与所述新增的任务处理节点的哈希值分区相匹配的任务调度至所述新增的任务处理节点。
具体的,所述目标任务处理节点,还用于获取针对第二任务的删除请求;基于所述删除请求,获得所述第二任务的标识信息的第六哈希值;将所述第六哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第二任务的第四任务处理节点;判断所述第四任务处理节点是否为所述目标任务处理节点;如果是,删除所述第二任务;如果否,向所述第四任务处理节点发送删除所述第二任务的删除指令;接收所述第四任务处理节点反馈的已删除所述第二任务的确认信息。
具体的,所述目标任务处理节点,还用于通过restful的API,获取客户端发送的创建目标任务的请求。
具体的,所述任务调度系统还包括负载均衡集群;
所述负载均衡集群,用于接收客户端发送的针对目标任务的任务处理请求,并将针对目标任务的任务处理请求转发给所述目标任务处理节点;
所述目标任务处理节点,用于通过restful的API,获取客户端发送的、并由所述负载均衡集群转发的针对目标任务的任务处理请求。
具体的,所述目标任务处理节点,用于通过restful的API,获取客户端通过所述客户端安装的SDK发送的创建目标任务的请求,其中,所述SDK用于实现所述客户端与所述任务调度系统的交互。
具体的,所述第一任务处理节点,用于向所述客户端发送所述目标任务的处理请求,以使所述客户端通过所述SDK,调用与所述目标任务具有关联关系的程序,对所述目标任务进行处理。
应用本发明实施例,目标任务处理节点通过目标任务的第一哈希值与哈希值分区进行匹配,根据匹配结果确定第一任务处理节点,将目标任务调度给第一任务处理节点处理,因而,不同的任可以调度给不同的任务处理节点处理,任务可以并行地被处理,提高了任务处理的准确性。不同的任可以调度给不同的任务处理节点处理减轻了单个任务处理节点的压力,保证一个任务只会由一个任务处理节点处理。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (29)
1.一种任务调度方法,其特征在于,应用于任务调度系统中的目标任务处理节点,所述任务调度系统包括任务处理节点集群,所述任务处理节点集群中存在至少两个任务处理节点,所述方法包括:
获取针对目标任务的任务处理请求;
计算所述目标任务的标识信息的第一哈希值;
将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值;
将所述目标任务调度给所述第一任务处理节点,以使得所述第一任务处理节点对所述目标任务进行处理。
2.根据权利提要求1所述的方法,其特征在于,所述任务处理节点集群中每一任务处理节点设置有至少一个虚拟节点;
所述封闭圆环是由所述第二哈希值和各个虚拟节点对应的第三哈希值确定的,其中,所述第三哈希值为虚拟节点的标识信息的哈希值;
每个任务处理节点的哈希值分区由第一哈希值子分区和第二哈希值子分区组成,其中,所述第一哈希值子分区由该任务处理节点的第二哈希值确定,第二哈希值子分区由该任务处理节点对应的虚拟节点的第三哈希值确定。
3.根据权利要求1所述的方法,其特征在于,所述任务处理节点集群中包括一个主任务处理节点和至少一个从任务处理节点;当所述目标任务处理节点是所述主任务处理节点时,所述方法还包括:
监听是否存在从任务处理节点退出所述任务处理节点集群;
若存在,更新第一邻居任务处理节点的哈希值分区,其中,所述第一邻居任务处理节点是根据已退出的任务处理节点的标识信息的哈希值确定的;
在已退出的任务处理节点上存在未完成的第一任务时,获取所述第一任务的标识信息的第四哈希值;
将所述第四哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第一任务的第二任务处理节点;
将所述第一任务调度给所述第二任务处理节点,以使得所述第二任务处理节点对所述第一任务进行处理。
4.根据权利要求3所述的方法,所述任务调度系统还包括:用于监听任务处理节点工作状态的ZooKeeper节点;
所述监听是否存在从任务处理节点退出所述任务处理节点集群,包括:
根据所述ZooKeeper节点针对任务处理节点工作状态的监听结果,判断是否存在从任务处理节点退出所述任务处理节点集群。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
监听到有新增的任务处理节点加入所述任务处理节点集群时,根据哈希算法,计算新增的任务处理节点的标识信息的第五哈希值;
根据所述第五哈希值,确定所述新增的任务处理节点的第二邻居任务处理节点;
根据所述第五哈希值,更新所述第二邻居任务处理节点的哈希值分区,并确定所述新增的任务处理节点的哈希值分区;
将所述第二邻居任务处理节点的未完成任务中,任务的标识信息的哈希值与所述新增的任务处理节点的哈希值分区相匹配的任务调度至所述新增的任务处理节点。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取针对第二任务的删除请求;
基于所述删除请求,获得所述第二任务的标识信息的第六哈希值;
将所述第六哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第二任务的第四任务处理节点;
判断所述第四任务处理节点是否为所述目标任务处理节点;
如果是,删除所述第二任务;
如果否,向所述第四任务处理节点发送删除所述第二任务的删除指令;
接收所述第四任务处理节点反馈的已删除所述第二任务的确认信息。
7.根据权利要求1所述的方法,其特征在于,所述获取针对目标任务的任务处理请求,包括:
通过restful的API,获取客户端发送的创建目标任务的请求。
8.根据权利要求7所述的方法,其特征在于,所述任务调度系统还包括负载均衡集群;
所述通过restful的API,获取客户端发送的针对目标任务的任务处理请求,包括:
通过restful的API,获取客户端发送的、并由所述负载均衡集群转发的针对目标任务的任务处理请求。
9.根据权利要求7所述的方法,其特征在于,所述通过restful的API,获取客户端发送的针对目标任务的任务处理请求,包括:
通过restful的API,获取客户端通过所述客户端安装的SDK发送的针对目标任务的任务处理请求,其中,所述SDK用于实现所述客户端与所述任务调度系统的交互。
10.根据权利要求9所述的方法,其特征在于,所述对所述目标任务进行处理,包括:
向所述客户端发送所述目标任务的处理请求,以使所述客户端通过所述SDK,调用与所述目标任务具有关联关系的程序,对所述目标任务进行处理。
11.一种任务调度装置,其特征在于,应用于任务调度系统中的目标任务处理节点,所述任务调度系统包括任务处理节点集群,所述任务处理节点集群中存在至少两个任务处理节点,所述装置包括:
第一获取模块,用于获取针对目标任务的任务处理请求;
第一计算模块,用于计算所述目标任务的标识信息的第一哈希值;
第一确定模块,用于将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值;
第一调度模块,用于将所述目标任务调度给所述第一任务处理节点,以使得所述第一任务处理节点对所述目标任务进行处理。
12.根据权利提要求11所述的装置,其特征在于,所述任务处理节点集群中每一任务处理节点设置有至少一个虚拟节点;
所述封闭圆环是由所述第二哈希值和各个虚拟节点对应的第三哈希值确定的,其中,所述第三哈希值为虚拟节点的标识信息的哈希值;
每个任务处理节点的哈希值分区由第一哈希值子分区和第二哈希值子分区组成,其中,所述第一哈希值子分区由该任务处理节点的第二哈希值确定,第二哈希值子分区由该任务处理节点对应的虚拟节点的第三哈希值确定。
13.根据权利要求11所述的装置,其特征在于,所述任务处理节点集群中包括一个主任务处理节点和至少一个从任务处理节点;当所述目标任务处理节点是所述主任务处理节点时,所述装置还包括:
监听模块,用于监听是否存在从任务处理节点退出所述任务处理节点集群;
第一更新模块,用于在所述监听模块的监听结果为存在的情况下,更新第一邻居任务处理节点的哈希值分区,其中,所述第一邻居任务处理节点是根据已退出的任务处理节点的标识信息的哈希值确定的;
第二获取模块,用于在已退出的任务处理节点上存在未完成的第一任务时,获取所述第一任务的标识信息的第四哈希值;
第二确定模块,用于将所述第四哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第一任务的第二任务处理节点;
第二调度模块,用于将所述第一任务调度给所述第二任务处理节点,以使得所述第二任务处理节点对所述第一任务进行处理。
14.根据权利要求13所述的装置,所述任务调度系统还包括:用于监听任务处理节点工作状态的ZooKeeper节点;
所述监听模块,具体用于:
根据所述ZooKeeper节点针对任务处理节点工作状态的监听结果,判断是否存在从任务处理节点退出所述任务处理节点集群。
15.根据权利要求13或14所述的装置,其特征在于,所述装置还包括:
第二计算模块,用于在监听到有新增的任务处理节点加入所述任务处理节点集群时,根据哈希算法,计算新增的任务处理节点的标识信息的第五哈希值;
第三确定模块,用于根据所述第五哈希值,确定所述新增的任务处理节点的第二邻居任务处理节点;
第二更新模块,用于根据所述第五哈希值,更新所述第二邻居任务处理节点的哈希值分区,并确定所述新增的任务处理节点的哈希值分区;
第三调度模块,用于将所述第二邻居任务处理节点的未完成任务中,任务的标识信息的哈希值与所述新增的任务处理节点的哈希值分区相匹配的任务调度至所述新增的任务处理节点。
16.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取针对第二任务的删除请求;
获得模块,用于基于所述删除请求,获得所述第二任务的标识信息的第六哈希值;
第四确定模块,用于将所述第六哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第二任务的第四任务处理节点;
判断模块,用于判断所述第四任务处理节点是否为所述目标任务处理节点;
删除模块,用于在所述判断模块的判断结果为是的情况下,删除所述第二任务;
发送模块,用于在所述判断模块的判断结果为否的情况下,向所述第四任务处理节点发送删除所述第二任务的删除指令;
接收模块,用于接收所述第四任务处理节点反馈的已删除所述第二任务的确认信息。
17.根据权利要求11所述的装置,其特征在于,所述第一获取模块,用于:
通过restful的API,获取客户端发送的针对目标任务的任务处理请求。
18.根据权利要求17所述的装置,其特征在于,所述任务调度系统还包括负载均衡集群;
所述第一获取模块,具体用于:
通过restful的API,获取客户端发送的、并由所述负载均衡集群转发的针对目标任务的任务处理请求。
19.根据权利要求17所述的装置,其特征在于,所述第一获取模块,具体用于:
通过restful的API,获取客户端通过所述客户端安装的SDK发送的针对目标任务的任务处理请求,其中,所述SDK用于实现所述客户端与所述任务调度系统的交互。
20.一种任务调度系统,其特征在于,所述任务调度系统包括任务处理节点集群,所述任务处理节点集群中存在至少两个任务处理节点,所述系统包括:
所述任务处理节点集群中的目标任务处理节点,用于获取针对目标任务的任务处理请求;计算所述目标任务的标识信息的第一哈希值;将所述目标哈希值与当前记录的所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述目标任务的第一任务处理节点,其中,各个任务处理节点的哈希值分区分别由各个任务处理节点对应的第二哈希值确定,各个任务处理节点的哈希值分区不重合,且各个任务处理节点的哈希值分区形成的区域与封闭圆环对应的区域相同,所述封闭圆环是由所述第二哈希值确定的,所述第二哈希值为任务处理节点的标识信息的哈希值;将所述目标任务调度给所述第一任务处理节点;
所述第一任务处理节点,用于对所述目标任务进行处理。
21.根据权利提要求20所述的系统,其特征在于,所述任务处理节点集群中每一任务处理节点设置有至少一个虚拟节点;
所述封闭圆环是由所述第二哈希值和各个虚拟节点对应的第三哈希值确定的,其中,所述第三哈希值为虚拟节点的标识信息的哈希值;
每个任务处理节点的哈希值分区由第一哈希值子分区和第二哈希值子分区组成,其中,所述第一哈希值子分区由该任务处理节点的第二哈希值确定,第二哈希值子分区由该任务处理节点对应的虚拟节点的第三哈希值确定。
22.根据权利要求20所述的系统,其特征在于,所述任务处理节点集群中包括一个主任务处理节点和至少一个从任务处理节点;
当所述目标任务处理节点是所述主任务处理节点时,所述目标任务处理节点,还用于监听是否存在从任务处理节点退出所述任务处理节点集群;若存在,更新第一邻居任务处理节点的哈希值分区,其中,所述第一邻居任务处理节点是根据已退出的任务处理节点的标识信息的哈希值确定的;在已退出的任务处理节点上存在未完成的第一任务时,获取所述第一任务的标识信息的第四哈希值;将所述第四哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第一任务的第二任务处理节点;将所述第一任务调度给所述第二任务处理节点;
所述第二任务处理节点,用于对所述第一任务进行处理。
23.根据权利要求22所述的系统,所述任务调度系统还包括:用于监听任务处理节点工作状态的ZooKeeper节点;
所述ZooKeeper节点,用于记录所述任务处理节点集群中的每一任务处理节点的工作状态;
所述目标任务处理节点,用于根据所述ZooKeeper节点针对任务处理节点工作状态的监听结果,判断是否存在从任务处理节点退出所述任务处理节点集群。
24.根据权利要求22或23所述的系统,其特征在于,
所述目标任务处理节点,还用于监听到有新增的任务处理节点加入所述任务处理节点集群时,根据哈希算法,计算新增的任务处理节点的标识信息的第五哈希值;根据所述第五哈希值,确定所述新增的任务处理节点的第二邻居任务处理节点;根据所述第五哈希值,更新所述第二邻居任务处理节点的哈希值分区,并确定所述新增的任务处理节点的哈希值分区;将所述第二邻居任务处理节点的未完成任务中,任务的标识信息的哈希值与所述新增的任务处理节点的哈希值分区相匹配的任务调度至所述新增的任务处理节点。
25.根据权利要求20所述的系统,其特征在于,
所述目标任务处理节点,还用于获取针对第二任务的删除请求;基于所述删除请求,获得所述第二任务的标识信息的第六哈希值;将所述第六哈希值与当前所有任务处理节点的哈希值分区进行匹配,根据匹配结果确定处理所述第二任务的第四任务处理节点;判断所述第四任务处理节点是否为所述目标任务处理节点;如果是,删除所述第二任务;如果否,向所述第四任务处理节点发送删除所述第二任务的删除指令;接收所述第四任务处理节点反馈的已删除所述第二任务的确认信息。
26.根据权利要求20所述的系统,其特征在于,所述目标任务处理节点,还用于通过restful的API,获取客户端发送的创建目标任务的请求。
27.根据权利要求26所述的系统,其特征在于,所述任务调度系统还包括负载均衡集群;
所述负载均衡集群,用于接收客户端发送的针对目标任务的任务处理请求,并将针对目标任务的任务处理请求转发给所述目标任务处理节点;
所述目标任务处理节点,用于通过restful的API,获取客户端发送的、并由所述负载均衡集群转发的针对目标任务的任务处理请求。
28.根据权利要求26所述的系统,其特征在于,
所述目标任务处理节点,用于通过restful的API,获取客户端通过所述客户端安装的SDK发送的创建目标任务的请求,其中,所述SDK用于实现所述客户端与所述任务调度系统的交互。
29.根据权利要求28所述的系统,其特征在于,
所述第一任务处理节点,用于向所述客户端发送所述目标任务的处理请求,以使所述客户端通过所述SDK,调用与所述目标任务具有关联关系的程序,对所述目标任务进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611088406.5A CN108132830B (zh) | 2016-12-01 | 2016-12-01 | 一种任务调度方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611088406.5A CN108132830B (zh) | 2016-12-01 | 2016-12-01 | 一种任务调度方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108132830A true CN108132830A (zh) | 2018-06-08 |
CN108132830B CN108132830B (zh) | 2020-12-25 |
Family
ID=62387735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611088406.5A Active CN108132830B (zh) | 2016-12-01 | 2016-12-01 | 一种任务调度方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132830B (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040212A (zh) * | 2018-07-24 | 2018-12-18 | 苏州科达科技股份有限公司 | 设备接入服务器集群方法、系统、设备及存储介质 |
CN109144690A (zh) * | 2018-07-06 | 2019-01-04 | 麒麟合盛网络技术股份有限公司 | 任务处理方法和装置 |
CN109558230A (zh) * | 2018-11-23 | 2019-04-02 | 北京百分点信息科技有限公司 | 一种分布式定时任务调度系统及方法 |
CN109598536A (zh) * | 2018-11-06 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 一种人群的分流方法、装置及设备 |
CN109614209A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种任务处理方法、应用服务器及系统 |
CN109634726A (zh) * | 2018-10-25 | 2019-04-16 | 平安科技(深圳)有限公司 | 定时任务的处理方法、装置、设备及存储介质 |
CN109710433A (zh) * | 2018-12-30 | 2019-05-03 | 浙江蓝卓工业互联网信息技术有限公司 | 基于元数据驱动的数据处理方法、装置及系统 |
CN109753593A (zh) * | 2018-12-29 | 2019-05-14 | 广州极飞科技有限公司 | 喷洒作业任务调度方法及无人机 |
CN110392109A (zh) * | 2019-07-23 | 2019-10-29 | 浪潮软件集团有限公司 | 基于cmsp流程编排的任务调度方法及系统 |
CN110457128A (zh) * | 2019-07-11 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 任务分配方法、装置和系统 |
CN110716796A (zh) * | 2019-09-02 | 2020-01-21 | 中国平安财产保险股份有限公司 | 智能任务调度方法及装置、存储介质、电子设备 |
CN110780988A (zh) * | 2018-07-31 | 2020-02-11 | 重庆小雨点小额贷款有限公司 | 一种任务触发方法、装置及计算机可读存储介质 |
CN110895487A (zh) * | 2018-09-12 | 2020-03-20 | 北京奇虎科技有限公司 | 分布式任务调度系统 |
CN111078413A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种定时任务的执行方法、装置、计算机设备及存储介质 |
CN111338793A (zh) * | 2020-02-14 | 2020-06-26 | 拉扎斯网络科技(上海)有限公司 | 集群任务分发方法、装置、设备及存储介质 |
CN111580948A (zh) * | 2020-04-30 | 2020-08-25 | 中国平安财产保险股份有限公司 | 任务调度方法、装置及计算机设备 |
CN111638885A (zh) * | 2020-05-29 | 2020-09-08 | 北京金山云网络技术有限公司 | 一种插件的发布方法、装置、电子设备及存储介质 |
CN111723073A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 数据存储处理方法、装置、处理系统以及存储介质 |
CN112132683A (zh) * | 2020-09-18 | 2020-12-25 | 泰康保险集团股份有限公司 | 指令下发的方法、装置、电子设备和存储介质 |
CN112306720A (zh) * | 2020-11-23 | 2021-02-02 | 迈普通信技术股份有限公司 | 业务系统集群管理方法 |
WO2021018183A1 (zh) * | 2019-07-31 | 2021-02-04 | 华为技术有限公司 | 一种资源分配方法和资源借调方法 |
CN112527479A (zh) * | 2020-12-03 | 2021-03-19 | 武汉联影医疗科技有限公司 | 任务执行方法、装置、计算机设备和存储介质 |
CN113127409A (zh) * | 2019-12-31 | 2021-07-16 | 深圳云天励飞技术有限公司 | 数据实时归档用运算集群的管理方法、装置、设备及介质 |
CN113590314A (zh) * | 2021-07-13 | 2021-11-02 | 上海一谈网络科技有限公司 | 网络请求数据处理方法和系统 |
CN113835862A (zh) * | 2021-09-26 | 2021-12-24 | 中国联合网络通信集团有限公司 | 任务处理方法及装置 |
CN113973075A (zh) * | 2020-07-22 | 2022-01-25 | 北京金山云网络技术有限公司 | 一种数据处理方法及装置 |
CN114780487A (zh) * | 2022-04-21 | 2022-07-22 | 中国农业银行股份有限公司 | 一种文件处理方法及集群系统 |
CN115333939A (zh) * | 2022-07-27 | 2022-11-11 | 青岛海尔空调电子有限公司 | 支持边缘计算的物联网网关的运行控制方法、设备及介质 |
CN115599845A (zh) * | 2022-12-06 | 2023-01-13 | 杭州心识宇宙科技有限公司(Cn) | 一种业务执行的方法、装置、存储介质及电子设备 |
CN114448850B (zh) * | 2021-12-21 | 2023-11-03 | 天翼云科技有限公司 | 拨测控制方法、电子设备及拨测系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831120A (zh) * | 2011-06-15 | 2012-12-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及系统 |
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN104123186A (zh) * | 2013-10-15 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 业务分配方法及装置 |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和系统 |
US20160179979A1 (en) * | 2014-12-22 | 2016-06-23 | Franz, Inc. | Semantic indexing engine |
-
2016
- 2016-12-01 CN CN201611088406.5A patent/CN108132830B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831120A (zh) * | 2011-06-15 | 2012-12-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及系统 |
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN104123186A (zh) * | 2013-10-15 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 业务分配方法及装置 |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和系统 |
US20160179979A1 (en) * | 2014-12-22 | 2016-06-23 | Franz, Inc. | Semantic indexing engine |
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144690A (zh) * | 2018-07-06 | 2019-01-04 | 麒麟合盛网络技术股份有限公司 | 任务处理方法和装置 |
CN109040212A (zh) * | 2018-07-24 | 2018-12-18 | 苏州科达科技股份有限公司 | 设备接入服务器集群方法、系统、设备及存储介质 |
CN110780988A (zh) * | 2018-07-31 | 2020-02-11 | 重庆小雨点小额贷款有限公司 | 一种任务触发方法、装置及计算机可读存储介质 |
CN110895487B (zh) * | 2018-09-12 | 2023-03-10 | 北京奇虎科技有限公司 | 分布式任务调度系统 |
CN110895487A (zh) * | 2018-09-12 | 2020-03-20 | 北京奇虎科技有限公司 | 分布式任务调度系统 |
CN109634726A (zh) * | 2018-10-25 | 2019-04-16 | 平安科技(深圳)有限公司 | 定时任务的处理方法、装置、设备及存储介质 |
CN109614209B (zh) * | 2018-10-26 | 2023-09-05 | 创新先进技术有限公司 | 一种任务处理方法、应用服务器及系统 |
CN109614209A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种任务处理方法、应用服务器及系统 |
CN109598536B (zh) * | 2018-11-06 | 2023-01-24 | 创新先进技术有限公司 | 一种人群的分流方法、装置及设备 |
CN109598536A (zh) * | 2018-11-06 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 一种人群的分流方法、装置及设备 |
CN109558230A (zh) * | 2018-11-23 | 2019-04-02 | 北京百分点信息科技有限公司 | 一种分布式定时任务调度系统及方法 |
CN109753593A (zh) * | 2018-12-29 | 2019-05-14 | 广州极飞科技有限公司 | 喷洒作业任务调度方法及无人机 |
CN109710433B (zh) * | 2018-12-30 | 2021-04-27 | 浙江蓝卓工业互联网信息技术有限公司 | 基于元数据驱动的数据处理方法、装置及系统 |
CN109710433A (zh) * | 2018-12-30 | 2019-05-03 | 浙江蓝卓工业互联网信息技术有限公司 | 基于元数据驱动的数据处理方法、装置及系统 |
CN111723073B (zh) * | 2019-03-19 | 2023-09-01 | 北京沃东天骏信息技术有限公司 | 数据存储处理方法、装置、处理系统以及存储介质 |
CN111723073A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 数据存储处理方法、装置、处理系统以及存储介质 |
CN110457128B (zh) * | 2019-07-11 | 2023-12-22 | 创新先进技术有限公司 | 任务分配方法、装置和系统 |
CN110457128A (zh) * | 2019-07-11 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 任务分配方法、装置和系统 |
CN110392109A (zh) * | 2019-07-23 | 2019-10-29 | 浪潮软件集团有限公司 | 基于cmsp流程编排的任务调度方法及系统 |
CN110392109B (zh) * | 2019-07-23 | 2021-09-07 | 浪潮软件股份有限公司 | 基于cmsp流程编排的任务调度方法及系统 |
WO2021018183A1 (zh) * | 2019-07-31 | 2021-02-04 | 华为技术有限公司 | 一种资源分配方法和资源借调方法 |
CN110716796A (zh) * | 2019-09-02 | 2020-01-21 | 中国平安财产保险股份有限公司 | 智能任务调度方法及装置、存储介质、电子设备 |
CN110716796B (zh) * | 2019-09-02 | 2024-05-28 | 中国平安财产保险股份有限公司 | 智能任务调度方法及装置、存储介质、电子设备 |
CN111078413B (zh) * | 2019-12-17 | 2024-04-19 | 深圳前海环融联易信息科技服务有限公司 | 一种定时任务的执行方法、装置、计算机设备及存储介质 |
CN111078413A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种定时任务的执行方法、装置、计算机设备及存储介质 |
CN113127409A (zh) * | 2019-12-31 | 2021-07-16 | 深圳云天励飞技术有限公司 | 数据实时归档用运算集群的管理方法、装置、设备及介质 |
CN111338793A (zh) * | 2020-02-14 | 2020-06-26 | 拉扎斯网络科技(上海)有限公司 | 集群任务分发方法、装置、设备及存储介质 |
CN111580948A (zh) * | 2020-04-30 | 2020-08-25 | 中国平安财产保险股份有限公司 | 任务调度方法、装置及计算机设备 |
CN111638885A (zh) * | 2020-05-29 | 2020-09-08 | 北京金山云网络技术有限公司 | 一种插件的发布方法、装置、电子设备及存储介质 |
CN113973075A (zh) * | 2020-07-22 | 2022-01-25 | 北京金山云网络技术有限公司 | 一种数据处理方法及装置 |
CN112132683A (zh) * | 2020-09-18 | 2020-12-25 | 泰康保险集团股份有限公司 | 指令下发的方法、装置、电子设备和存储介质 |
CN112306720B (zh) * | 2020-11-23 | 2022-06-21 | 迈普通信技术股份有限公司 | 业务系统集群管理方法 |
CN112306720A (zh) * | 2020-11-23 | 2021-02-02 | 迈普通信技术股份有限公司 | 业务系统集群管理方法 |
CN112527479A (zh) * | 2020-12-03 | 2021-03-19 | 武汉联影医疗科技有限公司 | 任务执行方法、装置、计算机设备和存储介质 |
CN113590314A (zh) * | 2021-07-13 | 2021-11-02 | 上海一谈网络科技有限公司 | 网络请求数据处理方法和系统 |
CN113835862B (zh) * | 2021-09-26 | 2023-07-07 | 中国联合网络通信集团有限公司 | 任务处理方法及装置 |
CN113835862A (zh) * | 2021-09-26 | 2021-12-24 | 中国联合网络通信集团有限公司 | 任务处理方法及装置 |
CN114448850B (zh) * | 2021-12-21 | 2023-11-03 | 天翼云科技有限公司 | 拨测控制方法、电子设备及拨测系统 |
CN114780487A (zh) * | 2022-04-21 | 2022-07-22 | 中国农业银行股份有限公司 | 一种文件处理方法及集群系统 |
CN114780487B (zh) * | 2022-04-21 | 2024-09-17 | 中国农业银行股份有限公司 | 一种文件处理方法及集群系统 |
CN115333939A (zh) * | 2022-07-27 | 2022-11-11 | 青岛海尔空调电子有限公司 | 支持边缘计算的物联网网关的运行控制方法、设备及介质 |
CN115599845A (zh) * | 2022-12-06 | 2023-01-13 | 杭州心识宇宙科技有限公司(Cn) | 一种业务执行的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108132830B (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132830A (zh) | 一种任务调度方法、装置及系统 | |
US11151137B2 (en) | Multi-partition operation in combination operations | |
US10896182B2 (en) | Multi-partitioning determination for combination operations | |
CN105138587B (zh) | 数据访问方法、装置和系统 | |
US11157324B2 (en) | Partitioning for delayed queues in a distributed network | |
US8788565B2 (en) | Dynamic and distributed queueing and processing system | |
JP4422606B2 (ja) | 分散型アプリケーションサーバおよび分散された機能を実施する方法 | |
US9208476B2 (en) | Counting and resetting broadcast system badge counters | |
US20130067024A1 (en) | Distributing multi-source push notifications to multiple targets | |
CN104539713B (zh) | 业务请求处理方法和装置 | |
EP2756476A2 (en) | Marketplace for timely event data distribution | |
EP1212680A2 (en) | Graceful distribution in application server load balancing | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN110162529A (zh) | 一种数据处理方法、业务服务器及数据处理系统 | |
CN110336863B (zh) | 一种数据上报方法和系统 | |
US7353248B1 (en) | Application server and method to perform hierarchical configurable data validation | |
WO2011036663A2 (en) | Method and system for reconstructing transactions in a communication network | |
US8326913B2 (en) | Method and system for service contract discovery | |
CN116048467A (zh) | 微服务开发平台及业务系统开发方法 | |
KR101950050B1 (ko) | 이벤트 데이터 획득을 위한 스케일 아웃 시스템 | |
CN110049084A (zh) | 分布式系统的限流方法、装置及设备 | |
CN110457307A (zh) | 元数据管理系统、用户集群创建方法、装置、设备和介质 | |
US7792274B2 (en) | Techniques for performing multi-media call center functionality in a database management system | |
US6912586B1 (en) | Apparatus for journaling during software deployment and method therefor | |
US10489213B2 (en) | Execution of a method at a cluster of nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |