CN111045813B - 一种任务分发系统及方法 - Google Patents
一种任务分发系统及方法 Download PDFInfo
- Publication number
- CN111045813B CN111045813B CN201911380383.9A CN201911380383A CN111045813B CN 111045813 B CN111045813 B CN 111045813B CN 201911380383 A CN201911380383 A CN 201911380383A CN 111045813 B CN111045813 B CN 111045813B
- Authority
- CN
- China
- Prior art keywords
- queue
- task
- server
- queue server
- identifier
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000013475 authorization Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
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
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种任务分发系统及方法。
背景技术
随着移动互联网技术的迅速发展,面临大量的任务处理时,通常在多个执行端处理任务。传统的,执行端获取任务的方式有两种:第一种是基于消息队列实现的,由流程引擎把任务压入消息队列,任务队列服务接收到客户端获取任务的请求时,从消息队列拉出一笔任务;第二种是基于数据库查询实现的,原理是流程引擎把任务保存在数据库里,任务队列服务接收到客户端获取任务时执行一个数据库查询语句,然后锁定第一条任务,锁定成功后,把它返回给客户端。
上述两种方式中,基于消息队列的任务队列的任务排序规则一般都是先进先出,不支持多个维度的排序规则,因此这种队列的应用场景受到很大限制;基于数据库实现的任务队列,每次获取任务都要执行一次带排序的查询语句,增大了数据库的压力,并且在并发环境下,同时执行的几个请求可能查询到相同的任务列表,执行任务锁定只能有一个成功,锁定失败的就要继续尝试锁定下一条,这样造成请求时延长,也加大了数据库的负担,降低了系统的吞吐率。
发明内容
本发明实施例提供了一种任务分发系统及方法,以减少任务分发过程中数据库访问次数,提高系统吞吐率以及任务分发请求的响应速度。
第一方面,本发明实施例提供了一种任务分发系统,包括:请求分发装置、队列控制器和至少一个队列服务器,其中:
所述请求分发装置,用于接收任务获取请求,并将所述任务获取请求发送至所述队列服务器;
所述队列控制器,用于存储队列服务器标识与所述队列服务器的控制队列标识之间的对应关系;
所述队列服务器,存储有所述队列服务器对应的控制队列的队列任务,用于接收所述请求分发装置发送的任务获取请求,并通过调用所述队列控制器确定与所述任务获取请求对应的控制队列服务器,从所述控制队列服务器中获取与所述任务获取请求对应的目标队列任务,将所述目标队列任务作为所述任务获取请求的响应信息。
第二方面,本发明实施例还提供了一种任务分发方法,应用于如本发明任意实施例所述的任务分发系统,所述方法包括:
接收任务获取请求,获取所述任务获取请求中包含的任务队列标识;
调用队列控制器获取所述任务队列标识对应的任务队列服务器标识;
根据所述任务队列服务器标识获取所述任务队列标识对应的目标队列任务,并将所述目标队列任务作为所述任务获取请求的响应信息。
本发明实施例所提供的任务分发系统,包括请求分发装置、队列控制器和至少一个队列服务器,其中:所述请求分发装置,用于接收任务获取请求,并将所述任务获取请求发送至所述队列服务器;所述队列控制器,用于存储队列服务器标识与所述队列服务器的控制队列标识之间的对应关系;所述队列服务器,存储有所述队列服务器对应的控制队列的队列任务,用于接收所述请求分发装置发送的任务获取请求,并通过调用所述队列控制器确定与所述任务获取请求对应的控制队列服务器,从所述控制队列服务器中获取与所述任务获取请求对应的目标队列任务,将所述目标队列任务作为所述任务获取请求的响应信息,通过请求分发装置将任务获取请求发送至队列服务器,队列服务器调用队列控制器进行任务获取请求的响应,减少了任务分发过程中对数据库的访问次数,提高了系统吞吐率以及任务分发请求的响应速度。
附图说明
图1a是本发明实施例一所提供的一种任务分发系统的结构示意图;
图1b是本发明实施例一所提供的一种任务分发系统的信号流程示意图;
图2是本发明实施例二所提供的一种任务分发系统的结构示意图;
图3是本发明实施例三所提供的一种任务分发方法的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1a是本发明实施例一所提供的一种任务分发系统的结构示意图。本发明实施例所提供的任务分发系统可用于响应任务获取请求,进行任务分发。如图1a所示,该任务分发系统包括:请求分发装置110、队列控制器120和至少一个队列服务器130,其中:
所述请求分发装置110,用于接收任务获取请求,并将所述任务获取请求发送至所述队列服务器;
所述队列控制器120,用于存储队列服务器标识与所述队列服务器的控制队列标识之间的对应关系;
所述队列服务器130,存储有所述队列服务器对应的控制队列的队列任务,用于接收所述请求分发装置发送的任务获取请求,并通过调用所述队列控制器确定与所述任务获取请求对应的控制队列服务器,从所述控制队列服务器中获取与所述任务获取请求对应的目标队列任务,将所述目标队列任务作为所述任务获取请求的响应信息。
在本实施例中,为了减少任务大量分发过程中对数据库的访问次数,提高任务获取的处理效率,通过设置队列服务器,将一定数量的任务缓存到队列服务器的内存中。为了保证数据一致性,每个队列的任务由一个队列服务器负责控制,上述唯一性可以通过队列控制器实现。可选的,队列控制器可以通过数据库中的数据库表实现,也可以通过高速缓存实现,队列控制器中存储有队列服务器标识与队列服务器的控制队列标识之间的对应关系。示例性的,假设队列服务器A的可控制队列有队列1和队列2,队列服务器B的可控制队列有队列3,则队列控制器中存储的对应关系为队列服务器A对应队列1和队列2,队列服务器B对应队列3设置队列控制器。在接收到任务获取请求时,通过队列服务器进行任务获取请求的响应。可选的,队列服务器可以将任务获取请求中的任务队列标识发送至队列控制器,队列控制器通过查找存储的对应关系确定与任务队列标识对应的队列服务器标识,并将队列服务器标识返回至当前队列服务器,当前队列服务器根据队列服务器标识确定任务获取请求对应的控制队列服务器,从控制队列服务器获取与任务获取请求对应的目标队列任务。可选的,队列服务器执行的操作包括任务缓存、任务入列、任务出列等操作。
当队列服务器的个数为多个时,通过请求分发装置将接收到的任务获取请求分发至其中一个队列服务器,接收到任务获取请求的队列服务器通过调用队列控制器确定控制队列服务器,并从控制队列服务器中获取与任务获取请求对应的目标队列任务,将目标队列任务作为响应信息通过请求分发装置返回至发送任务获取请求的终端。其中,控制队列服务器可以为当前队列服务器(即接收任务分发请求的队列服务器),也可以为其他队列服务器。也就是说,队列服务器获取与任务获取请求对应的目标队列任务可以从当前队列服务器中获取,也可以调用其他队列服务器,从其他服务器中获取。
另外,当队列服务器为多个时,各队列服务器可以根据其控制的任务队列的任务处理需求对队列任务进行排序,也就是说,不同的队列服务器可以设置不同的排序规则,使得任务排序方式可以根据实际需求设置。
可选的,请求分发装置可以为负载均衡器,将任务获取请求分散到任务分发系统的服务器集群中的可用队列服务器上去,使得各队列服务器接收到的任务分发请求更加均衡,避免了因大量任务获取请求集中在同一队列服务器上时造成的任务获取响应缓慢。其中,负载均衡器可以为独立的硬件设备,还可以集成在交换设备中,置于应用服务器与网络连接之间,还可以以适配器将负载均衡的功能集成到计算机设备中,连接至网络。
需要说明的是,请求分发装置将任务获取请求发送至队列服务器的方式在此不做限定。可选的,请求分发装置可以将任务获取请求随机发送至任一队列服务器;还可以预先设定请求发送规则,请求分发装置根据预先设定的请求发送规则将任务获取请求发送至队列服务器。其中,请求发送规则可以为根据队列服务器的标识将任务获取请求顺序发送至队列服务器,还可以为将任务获取请求发送至当前处理的任务获取请求数量较少的队列服务器。
在本实施例中,任务获取请求获取的任务可以为各种类型的任务。示例性的,任务获取请求需要获取的任务可以为银行集中作业任务,如银行柜面系统的任务。此时,来自银行柜面系统或其他系统的任务获取请求先访问银行应用服务器,银行应用服务器再通过请求分发装置访问队列服务器,另外,自动处理机器人也可以直接通过请求分发装置向队列服务器发起任务获取请求。应用服务器或自动处理机器人发送的任务获取请求经任务分发装置进行请求分发后,到达某一台队列服务器上,队列服务器根据接收到的任务分发请求调用队列控制器获取任务分发请求对应的目标队列任务,将获取的目标队列任务作为所述任务获取请求的响应信息,并将响应信息通过任务分发装置返回至银行应用服务器或自动处理机器人。
示例性的,银行应用服务器通过负载均衡器向队列服务器发起了任务获取请求,负载均衡器将任务获取请求发送至队列服务器A,队列服务器A调用队列控制器获取到与任务获取请求对应的目标队列任务后,将获取的目标队列任务作为任务获取请求的响应信息通过负载均衡器发送至银行应用服务器。
本发明实施例所提供的任务分发系统包括:请求分发装置、队列控制器和至少一个队列服务器,其中:请求分发装置,用于接收任务获取请求,并将任务获取请求发送至队列服务器;队列控制器,用于存储队列服务器标识与队列服务器的控制队列标识之间的对应关系;队列服务器,存储有队列服务器对应的控制队列的队列任务,用于接收请求分发装置发送的任务获取请求,并通过调用队列控制器获取与任务获取请求对应的目标队列任务,将目标队列任务作为任务获取请求的响应信息,通过请求分发装置将任务获取请求发送至队列服务器,队列服务器进行任务获取请求的响应,减少了任务分发过程中对数据库的访问次数,提高了系统吞吐率以及任务分发请求的响应速度。
可选的,所述队列服务器具体用于:获取所述任务获取请求中包含的任务队列标识,调用所述队列控制器获取所述任务队列标识对应的任务队列服务器标识,根据所述任务队列服务器标识获取与所述任务队列标识对应的目标队列任务。
当通过队列控制器存储队列服务器标识与控制队列标识之间的对应关系时,队列服务器可以调用队列控制器获取任务获取请求中任务队列标识对应的任务队列服务器标识,基于获取的任务队列服务器标识获取目标队列任务。其中,任务队列标识为任务获取请求需要获取的任务所属任务队列的标识,唯一指向一个任务队列,任务队列服务器标识为控制任务队列标识对应的任务队列的队列服务器的标识,唯一指向一个队列服务器。
示例性的,假设任务获取请求中包含的任务队列标识为任务队列A,则队列服务器可以调用队列控制器获取任务队列A对应的任务队列服务器标识,若获取的任务队列服务器标识为队列服务器A,则通过队列服务器A获取任务队列A中的一个队列任务作为目标队列任务。
在本发明的一种实施方式中,所述队列服务器包括当前队列服务器,所述当前队列服务器为接收所述任务获取请求的队列服务器,所述当前队列服务器用于:若所述任务队列服务器标识与所述当前队列服务器的当前队列服务器标识相匹配,则从所述当前队列服务器中获取与所述任务队列标识对应的队列任务作为所述目标队列任务。
在本实施例中,针对每个任务获取请求,可以根据任务获取请求的接收方将任务分发系统中的队列服务器分为当前队列服务器和其他队列服务器,当前队列服务器为接收到任务获取请求的队列服务器,其他队列服务器为任务分发系统中除当前队列服务器之外的其他队列服务器。示例性的,若任务分发系统中包含队列服务器A、队列服务器B、队列服务器C和队列服务器D,且队列服务器A为接收到任务获取请求的队列服务器,则队列服务器A为当前队列服务器,队列服务器B、队列服务器C和队列服务器D为其他队列服务器。
可选的,当前队列服务器通过调用队列控制器获取任务获取请求中任务队列标识对应的任务队列服务器标识,根据获取的任务队列服务器标识判断当前队列服务器是否为任务队列标识对应的任务队列的控制队列服务器,若当前队列服务器是任务队列标识对应的任务队列的控制队列服务器,则从当前队列服务器中获取与任务队列标识对应的一队列任务作为目标队列任务。
在本实施例中,可以将任务队列服务器标识与当前队列服务器的当前队列服务器标识进行匹配,根据匹配结果判断当前队列服务器是否为任务队列标识对应的任务队列的控制队列服务器。若任务队列服务器标识与当前队列服务器标识匹配成功,表示当前队列服务器是任务队列标识对应的任务队列的控制队列服务器;若任务队列服务器标识与当前队列服务器标识匹配失败,表示当前队列服务器不是任务队列标识对应的任务队列的控制队列服务器。
可选的,在上述方案的基础上,所述当前队列服务器还用于:若所述任务队列服务器标识与所述其他队列服务器的其他队列服务器标识相匹配,则将所述任务获取请求发送至所述其他队列服务器,获取所述其他队列服务器返回的所述目标队列任务。
当当前队列服务器不是任务队列标识对应的任务队列的控制队列服务器时,判断其他队列服务器是否为任务队列标识对应的任务队列的控制队列服务器,若任务队列服务器标识与任一其他队列服务器的其他队列服务器标识相匹配,表示上述其他队列服务器为任务队列标识对应的任务队列的控制队列服务器,则当前队列服务器将任务获取请求发送至其他服务器,其他服务器接收到任务获取请求后,从其他服务器缓存中获取与任务队列标识对应的目标队列任务,并将目标队列任务发送至当前队列服务器,当前队列服务器再将目标队列任务作为响应信息通过请求分发装置发送至发送任务获取请求的终端。
图1b是本发明实施例一所提供的一种任务分发系统的信号流程示意图。如图1b所示,请求分发装置110接收到任务获取请求后,将任务获取请求发送至一队列服务器,假设请求分发装置将任务获取请求发送至队列服务器1,则队列服务器1调用队列控制器获取任务获取请求中任务队列标识对应的任务队列的控制队列服务器,若控制队列服务器为队列服务器1,则队列服务器1从其内存中获取与任务队列标识对应的一队列任务作为目标队列任务;若控制队列服务器为其他队列服务器,如队列服务器2,则队列服务器1将任务获取请求转发至队列服务器2,队列服务器2从自身内存中获取与任务队列标识对应的一队列任务作为目标队列任务,将目标队列任务转发至队列服务器1,队列服务器1将目标队列任务通过请求分发装置发送至发送任务获取请求的终端。
可选的,队列服务器可以在同城的多个数据中心分别部署,可以根据队列服务器所属数据中心将其他队列服务器划分为同数据中心服务器和其他数据中心服务器。当当前队列服务器不是任务队列标识对应的任务队列的控制队列服务器时,优先判断位于同数据中心的其他队列服务器是否为任务队列标识对应的任务队列的控制队列服务器,当位于同数据中心的其他队列服务器不是为任务队列标识对应的任务队列的控制队列服务器时,再判断其他数据中心的其他队列服务器是否为任务队列标识对应的任务队列的控制队列服务器。可选的,不同数据中心的队列服务器可以访问同一数据库,队列服务器之间通过HTTP通信,实现了服务器集群运行。
可选的,在上述方案的基础上,所述当前队列服务器还用于:若所述任务队列服务器标识为空,则向所述队列控制器发送队列控制请求,并根据所述队列控制器返回的授权信号确定与所述任务队列标识对应的任务队列服务器,基于所述任务队列服务器获取所述目标队列任务。
当任务队列服务器标识为空时,说明任务队列标识对应的任务队列不存在对应的控制队列服务器,则当前服务器向队列控制器发送队列控制请求,以获取上述任务队列的控制权,队列控制服务器根据接收到的队列控制请求为上述任务队列分配控制队列服务器,根据分配结果向当前队列服务器发送授权信号,当前队列服务器根据接收到的授权信号确定与任务队列标识对应的任务队列服务器,基于确定的任务队列服务器获取与任务队列标识对应的目标队列任务。
在本实施例中,可能存在并发争抢队列控制权的情况,即队列控制器可能接收到不同队列控制器针对同一任务队列的队列控制请求,当队列控制器接收到不同队列控制器针对同一任务队列的队列控制请求时,根据设定规则将队列控制权发配到一个队列服务器上,并根据分配结果向当前队列服务器发送授权信号。当队列控制权分配至当前队列服务器时,向当前队列服务器发送授权成功信号,当队列控制权未分配至当前队列服务器时,向当前队列服务器发送授权失败信号。可选的,设定规则可以根据队列控制请求的接收时间、队列控制器的性能等设置,如设置将队列控制权分配至发送队列控制请求较早的队列服务器,或将队列控制权分配至性能较好的队列服务器中。
可选的,在上述方案的基础上,所述当前队列服务器还用于:若所述队列控制器返回的授权信号为授权成功信号,则加载所述任务队列标识对应的队列任务,并从所述队列任务中选取一队列任务作为所述目标队列任务。当队列控制器返回的授权信号为授权成功信号时,表示当前队列控制器获取控制权成功,则从数据库中加载任务队列标识对应的队列任务,并从加载的队列任务中选取一个队列任务作为目标队列任务。
可选的,在上述方案的基础上,所述当前队列服务器还用于:若所述队列控制器返回的授权信号为授权失败信号,则调用所述队列控制器获取所述任务队列标识对应的任务队列服务器标识,根据所述任务队列服务器标识获取与所述任务队列标识对应的目标队列任务。当队列控制器返回的授权信号为授权失败信号时,表示当前队列控制器获取控制权失败,则再次调用队列控制器获取任务队列标识对应的任务队列服务器标识,根据任务队列服务器标识获取与所述任务队列标识对应的目标队列任务。可选的,调用队列控制器获取任务队列标识对应的任务队列服务器标识,根据任务队列服务器标识获取与所述任务队列标识对应的目标队列任务的具体方式可参见上述实施例,在此不再赘述。
可选的,在上述方案的基础上,所述当前队列服务器还用于:若所述任务队列服务器标识与其他队列服务器对应的其他队列服务器标识相匹配,且在将所述任务获取请求发送至所述其他队列服务器后,未收到所述其他队列服务器返回的目标队列任务,则向所述队列控制器发送队列控制请求,并根据所述队列控制器返回的授权信号确定与所述任务队列标识对应的任务队列服务器,基于所述任务队列服务器获取所述目标队列任务。
在本实施例中,如果其他队列服务器为任务队列标识对应任务队列的控制队列服务器,且在将任务获取请求发送至其他队列服务器后,其他队列服务器响应超时或响应错误发生次数达到设定次数,表示其他队列服务器发生故障,为了保证系统的高可用性,可以在任务队列标识对应任务队列的控制队列服务器发送故障时,向队列控制器发送队列控制请求,以争取任务队列的控制权,并基于队列控制器返回的授权信号获取目标队列任务。其中,向队列控制器发送队列控制请求,根据队列控制器返回的授权信号确定与任务队列标识对应的任务队列服务器,基于任务队列服务器获取所述目标队列任务的具体方式可参见上述实施例,在此不再赘述。
实施例二
图2是本发明实施例二所提供的一种任务分发系统的结构示意图。本实施例在上述实施例的基础上,提供了一种优选实施例。如图2所示,所述系统包括负载均衡器210、队列控制器220、队列服务器和数据服务器240,其中,队列控制器位于数据服务器230中,队列服务器包括数据中心A的队列服务器231和同城数据中心B的队列服务器232,数据中心A的队列服务器231包括队列服务器1和队列服务器2,数据中心B的队列服务器232包括队列服务器3和队列服务器4。
在本实施例中,数据中心A的应用服务器或自动机器人服务器将任务获取请求发送至负载均衡器,负载均衡器将任务获取请求分发至数据中心A的队列服务器,队列服务器通过调用队列控制器确定任务获取请求对应的控制队列服务器,并从控制队列服务器中获取目标队列任务,将目标队列任务通过负载均衡器返回至发送任务获取请求的终端(应用服务器或自动机器人服务器)。
其中数据中心A以及同城数据中心B的队列服务器均从同一数据服务器中获取队列任务并进行缓存,当数据中心A的队列服务器1、队列服务器2不可用时,调用同城数据中心B的队列服务3或队列服务器4器获取目标队列任务,实现同城双活。
在本实施例中,队列服务器轮询从数据服务器中加载其对应的控制队列的队列任务,当接收到客户端发送的任务获取请求时只需将任务从队列服务器的内存中取出,无需每次都查询数据库,提高了系统的吞吐率,并在分发队列任务后,更新数据服务器中的任务状态,使得任务状态更加准确。
实施例三
图3是本发明实施例三所提供的一种任务分发方法的流程图。本实施例可适用于任务分发时的情形。该方法可以由本发明实施例提供的任务分发系统中的队列服务器执行。如图3所示,所述方法包括:
S310、接收任务获取请求,获取所述任务获取请求中包含的任务队列标识。
在本实施例中,队列服务器接收任务分发装置发送的任务获取请求,对任务获取请求进行解析,获得任务获取请求中包含的任务队列标识。
S320、调用队列控制器获取所述任务队列标识对应的任务队列服务器标识。
S330、根据所述任务队列服务器标识获取所述任务队列标识对应的目标队列任务,并将所述目标队列任务作为所述任务获取请求的响应信息。
调用队列控制器获取任务队列标识对应的任务队列服务器标识,从任务队列服务器标识对应的队列服务器中获取任务队列标识对应的目标队列任务。其中,任务队列服务器标识对应的队列服务器可能为当前队列服务器,也可能为其他队列服务器。
在本发明的一种实施方式中,所述根据所述任务队列服务器标识获取所述任务队列标识对应的目标队列任务,包括:判断所述任务队列服务器标识与当前队列服务器标识是否匹配;若所述任务队列服务器标识与所述当前队列服务器标识相匹配,则从所述当前队列服务器中获取与所述任务队列标识对应的队列任务作为所述目标队列任务;若所述任务队列服务器标识与所述当前队列服务器标识不匹配,则将所述任务获取请求发送至所述任务队列服务器标识对应的任务队列服务器,获取所述任务队列服务器返回的所述目标队列任务。
当任务队列服务器标识与当前队列服务器标识相匹配时,表示当前队列服务器为任务队列标识对应的任务队列的控制队列服务器,则从当前队列服务器中获取与任务队列标识对应的一队列任务作为目标队列任务,当任务队列服务器标识与当前队列服务器标识不匹配时,表示当前队列服务器不是任务队列标识对应的任务队列的控制队列服务器,则将任务获取请求发送至任务队列服务器标识对应的任务队列服务器,通过任务队列服务器获取与任务队列标识对应的目标队列任务。
可选的,可能存在当前队列服务器与其他队列服务器均不是任务队列标识对应的任务队列的控制队列服务器,或调用其他队列服务器不能接收到正确响应的情况,此时,当前队列服务器向队列控制器发送队列控制请求,以争取任务队列标识对应的任务队列的控制权。可选的,争取任务队列标识对应的任务队列的控制权,以获取目标队列任务的更加详细的方式可参见上述实施例,在此不再赘述。
本发明实施例通过接收任务获取请求,获取所述任务获取请求中包含的任务队列标识;调用队列控制器获取所述任务队列标识对应的任务队列服务器标识;根据所述任务队列服务器标识获取所述任务队列标识对应的目标队列任务,并将所述目标队列任务作为所述任务获取请求的响应信息,减少了任务分发过程中对数据库的访问次数,提高了系统吞吐率以及任务分发请求的响应速度。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种任务分发系统,其特征在于,包括:请求分发装置、队列控制器和至少一个队列服务器,其中:
所述请求分发装置,用于接收任务获取请求,并将所述任务获取请求发送至所述队列服务器;
所述队列控制器,用于存储队列服务器标识与所述队列服务器的控制队列标识之间的对应关系;
所述队列服务器,存储有所述队列服务器对应的控制队列的队列任务,用于接收所述请求分发装置发送的任务获取请求,并通过调用所述队列控制器确定与所述任务获取请求对应的控制队列服务器,从所述控制队列服务器中获取与所述任务获取请求对应的目标队列任务,将所述目标队列任务作为所述任务获取请求的响应信息;
其中,控制队列服务器是接收任务分发请求的队列服务器或其他队列服务器;
所述队列服务器将一定数量的任务缓存到队列服务器的内存中,以减少任务大量分发过程中对数据库的访问次数,提高任务获取的处理效率;
所述队列服务器在同城的多个数据中心分别部署;不同数据中心的队列服务器均从同一数据服务器中获取队列任务并进行缓存;所述队列服务器轮询从所述数据服务器中加载其对应的控制队列的队列任务,当接收到所述请求分发装置发送的任务获取请求时只需将任务从所述队列服务器的内存中取出,无需每次都查询数据库。
2.根据权利要求1所述的任务分发系统,其特征在于,所述队列服务器具体用于:
获取所述任务获取请求中包含的任务队列标识,调用所述队列控制器获取所述任务队列标识对应的任务队列服务器标识,根据所述任务队列服务器标识获取与所述任务队列标识对应的目标队列任务。
3.根据权利要求2所述的任务分发系统,其特征在于,所述队列服务器包括当前队列服务器,所述当前队列服务器为接收所述任务获取请求的队列服务器,所述当前队列服务器用于:
若所述任务队列服务器标识与所述当前队列服务器的当前队列服务器标识相匹配,则从所述当前队列服务器中获取与所述任务队列标识对应的队列任务作为所述目标队列任务。
4.根据权利要求3所述的任务分发系统,其特征在于,所述队列服务器还包括其他队列服务器,所述其他队列服务器为所述任务分发系统内除所述当前队列服务器之外的其他队列服务器,所述当前队列服务器还用于:
若所述任务队列服务器标识与所述其他队列服务器的其他队列服务器标识相匹配,则将所述任务获取请求发送至所述其他队列服务器,获取所述其他队列服务器返回的所述目标队列任务。
5.根据权利要求3所述的任务分发系统,其特征在于,所述当前队列服务器还用于:
若所述任务队列服务器标识为空,则向所述队列控制器发送队列控制请求,并根据所述队列控制器返回的授权信号确定与所述任务队列标识对应的任务队列服务器,基于所述任务队列服务器获取所述目标队列任务。
6.根据权利要求5所述的任务分发系统,其特征在于,所述当前队列服务器还用于:
若所述队列控制器返回的授权信号为授权成功信号,则加载所述任务队列标识对应的队列任务,并从所述队列任务中选取一队列任务作为所述目标队列任务。
7.根据权利要求5所述的任务分发系统,其特征在于,所述当前队列服务器还用于:
若所述队列控制器返回的授权信号为授权失败信号,则调用所述队列控制器获取所述任务队列标识对应的任务队列服务器标识,根据所述任务队列服务器标识获取与所述任务队列标识对应的目标队列任务。
8.根据权利要求4所述的任务分发系统,其特征在于,所述当前队列服务器还用于:
若所述任务队列服务器标识与其他队列服务器对应的其他队列服务器标识相匹配,且在将所述任务获取请求发送至所述其他队列服务器后,未收到所述其他队列服务器返回的目标队列任务,则向所述队列控制器发送队列控制请求,并根据所述队列控制器返回的授权信号确定与所述任务队列标识对应的任务队列服务器,基于所述任务队列服务器获取所述目标队列任务。
9.一种任务分发方法,其特征在于,应用于如权利要求1-8任一项所述的任务分发系统,所述方法包括:
接收任务获取请求,获取所述任务获取请求中包含的任务队列标识;
调用队列控制器获取所述任务队列标识对应的任务队列服务器标识;
根据所述任务队列服务器标识获取所述任务队列标识对应的目标队列任务,并将所述目标队列任务作为所述任务获取请求的响应信息。
10.根据权利要求9所述的方法,其特征在于,所述根据所述任务队列服务器标识获取所述任务队列标识对应的目标队列任务,包括:
判断所述任务队列服务器标识与当前队列服务器标识是否匹配;
若所述任务队列服务器标识与所述当前队列服务器标识相匹配,则从所述当前队列服务器中获取与所述任务队列标识对应的队列任务作为所述目标队列任务;
若所述任务队列服务器标识与所述当前队列服务器标识不匹配,则将所述任务获取请求发送至所述任务队列服务器标识对应的任务队列服务器,获取所述任务队列服务器返回的所述目标队列任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911380383.9A CN111045813B (zh) | 2019-12-27 | 2019-12-27 | 一种任务分发系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911380383.9A CN111045813B (zh) | 2019-12-27 | 2019-12-27 | 一种任务分发系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111045813A CN111045813A (zh) | 2020-04-21 |
CN111045813B true CN111045813B (zh) | 2024-01-02 |
Family
ID=70239377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911380383.9A Active CN111045813B (zh) | 2019-12-27 | 2019-12-27 | 一种任务分发系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045813B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625270A (zh) * | 2020-05-21 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种开发环境创建方法、装置、设备及存储介质 |
CN112565032B (zh) * | 2020-11-30 | 2022-07-05 | 扬州鹏为软件有限公司 | 一种终端与智能化设备的连接方法 |
CN112613845A (zh) * | 2020-12-25 | 2021-04-06 | 中电金信软件有限公司 | 任务分配处理方法、装置及工作流系统 |
CN113238849A (zh) * | 2021-05-31 | 2021-08-10 | 杭州网易云音乐科技有限公司 | 定时任务处理方法、装置、存储介质与电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754786A (en) * | 1996-09-13 | 1998-05-19 | At&T Corp | System and method for integrated overload control and message distribution |
CN103312623A (zh) * | 2012-03-08 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | 任务协作装置及方法 |
CN106302647A (zh) * | 2016-07-29 | 2017-01-04 | 深圳前海微众银行股份有限公司 | 消息分发方法及服务器 |
CN108182111A (zh) * | 2018-01-23 | 2018-06-19 | 百度在线网络技术(北京)有限公司 | 任务调度系统、方法和装置 |
CN108566346A (zh) * | 2018-03-14 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 网络请求的处理方法及装置 |
CN109248440A (zh) * | 2018-07-20 | 2019-01-22 | 苏州玩友时代科技股份有限公司 | 一种实现游戏实时动态加载配置的方法及系统 |
CN109658261A (zh) * | 2018-12-11 | 2019-04-19 | 泰康保险集团股份有限公司 | 保单处理方法、装置、设备及存储介质 |
CN109660607A (zh) * | 2018-12-05 | 2019-04-19 | 北京金山云网络技术有限公司 | 一种业务请求分发方法、接收方法、装置及服务器集群 |
CN109936593A (zh) * | 2017-12-15 | 2019-06-25 | 网宿科技股份有限公司 | 一种消息分发的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496577B2 (en) * | 2017-02-09 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Distribution of master device tasks among bus queues |
-
2019
- 2019-12-27 CN CN201911380383.9A patent/CN111045813B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754786A (en) * | 1996-09-13 | 1998-05-19 | At&T Corp | System and method for integrated overload control and message distribution |
CN103312623A (zh) * | 2012-03-08 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | 任务协作装置及方法 |
CN106302647A (zh) * | 2016-07-29 | 2017-01-04 | 深圳前海微众银行股份有限公司 | 消息分发方法及服务器 |
CN109936593A (zh) * | 2017-12-15 | 2019-06-25 | 网宿科技股份有限公司 | 一种消息分发的方法和系统 |
CN108182111A (zh) * | 2018-01-23 | 2018-06-19 | 百度在线网络技术(北京)有限公司 | 任务调度系统、方法和装置 |
CN108566346A (zh) * | 2018-03-14 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 网络请求的处理方法及装置 |
CN109248440A (zh) * | 2018-07-20 | 2019-01-22 | 苏州玩友时代科技股份有限公司 | 一种实现游戏实时动态加载配置的方法及系统 |
CN109660607A (zh) * | 2018-12-05 | 2019-04-19 | 北京金山云网络技术有限公司 | 一种业务请求分发方法、接收方法、装置及服务器集群 |
CN109658261A (zh) * | 2018-12-11 | 2019-04-19 | 泰康保险集团股份有限公司 | 保单处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111045813A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111045813B (zh) | 一种任务分发系统及方法 | |
US8826284B1 (en) | Scalable task scheduling | |
US7856634B2 (en) | Load distribution system, and event processing distribution control apparatus, and an event processing distribution control program | |
US20090254917A1 (en) | System and method for improved i/o node control in computer system | |
JP3301648B2 (ja) | サービス・アクセス・ポイントに接続を分散する通信制御システム | |
US10686728B2 (en) | Systems and methods for allocating computing resources in distributed computing | |
CN105373429A (zh) | 任务调度方法、装置及系统 | |
US9736235B2 (en) | Computer system, computer, and load balancing method | |
EP3114589B1 (en) | System and method for massively parallel processing database | |
CN113014611B (zh) | 一种负载均衡方法及相关设备 | |
US20160234129A1 (en) | Communication system, queue management server, and communication method | |
CN112449005B (zh) | 请求分配方法、装置、电子设备及可读存储介质 | |
CN110750339A (zh) | 一种线程调度方法、装置及电子设备 | |
CN114205361B (zh) | 一种负载均衡方法以及服务器 | |
CN111556123A (zh) | 一种基于边缘计算的自适应网络快速配置及负载均衡系统 | |
EP3672203A1 (en) | Distribution method for distributed data computing, device, server and storage medium | |
CN113327053A (zh) | 任务处理方法及装置 | |
CN102023997B (zh) | 一种数据查询系统及其构建方法与相应的数据查询方法 | |
CN110908939B (zh) | 一种报文处理方法、装置及网络芯片 | |
CN113268329A (zh) | 一种请求调度方法、装置及存储介质 | |
CN106790632B (zh) | 一种流数据的并发传输方法和装置 | |
CN110995890B (zh) | 域名请求的调度方法及装置 | |
CN111459651B (zh) | 一种负载均衡方法、装置、存储介质及调度系统 | |
CN113268327A (zh) | 事务请求的处理方法、装置和电子设备 | |
JP2013206041A (ja) | 通信システム及び負荷分散処理装置 |
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 |