CN110795218B - 基于单元化的任务调度系统及方法 - Google Patents

基于单元化的任务调度系统及方法 Download PDF

Info

Publication number
CN110795218B
CN110795218B CN201910964976.3A CN201910964976A CN110795218B CN 110795218 B CN110795218 B CN 110795218B CN 201910964976 A CN201910964976 A CN 201910964976A CN 110795218 B CN110795218 B CN 110795218B
Authority
CN
China
Prior art keywords
task
application server
layer application
sub
layer
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
Application number
CN201910964976.3A
Other languages
English (en)
Other versions
CN110795218A (zh
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.)
Koubei Shanghai Information Technology Co Ltd
Original Assignee
Koubei Shanghai Information 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 Koubei Shanghai Information Technology Co Ltd filed Critical Koubei Shanghai Information Technology Co Ltd
Priority to CN201910964976.3A priority Critical patent/CN110795218B/zh
Publication of CN110795218A publication Critical patent/CN110795218A/zh
Application granted granted Critical
Publication of CN110795218B publication Critical patent/CN110795218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • G06Q30/0635Processing of requisition or of purchase orders

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种基于单元化的任务调度系统及方法。系统包括:调度中心从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求;第一层应用服务器根据调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器;第二层应用服务器根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将任务ID分发给对应的第三层应用服务器;第三层应用服务器根据接收到的任务ID访问各自单元的数据库,捞取任务ID对应的任务实体,执行任务实体对应的任务,基于单元化部署,实现任务调度在各自单元内封闭完成,提高了任务调度成功率及效率。

Description

基于单元化的任务调度系统及方法
技术领域
本发明实施例涉及互联网技术领域,具体涉及一种基于单元化的任务调度系统及方法。
背景技术
现有的任务调度方案是单个应用服务器定时捞取数据库内待调度的任务,然后进行循环处理,完成任务调度处理。该任务调度方案在存在明显的缺陷,主要有以下两个方面:1、任务量比较大的时候,单机将会成为瓶颈,单机的处理速度小于任务生成速度时,将会造成任务积压,影响线上业务;2、单机捞取任务可能会存在跨机房跨城捞取任务,就会导致耗时明显增加,效率降低,且占用机房之间的通信带宽。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的基于单元化的任务调度系统及方法。
根据本发明实施例的一个方面,提供了一种基于单元化的任务调度系统,包括:调度中心以及被划分为三层的多个应用服务器,多个应用服务器分属不同的单元;
多个应用服务器包含:多个第一层应用服务器、多个第二层应用服务器及多个第三层应用服务器;
调度中心适于:从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求;
第一层应用服务器,适于根据调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器;
第二层应用服务器,适于根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将任务ID分发给对应的第三层应用服务器;
第三层应用服务器,适于根据接收到的任务ID访问各自单元的数据库,捞取任务ID对应的任务实体,并执行任务实体对应的任务。
可选地,第二层应用服务器进一步适于:对所捞取的任务ID进行分析处理,确定任务ID中的路由标识位;
基于路由标识位将任务ID跨单元路由分发给对应的第三层应用服务器;或者,
基于路由标识位将任务ID分发给本单元内对应的第三层应用服务器。
可选地,第二层应用服务器进一步适于:若多个任务ID属于同一订单,则将多个任务ID分发给同一第三层应用服务器;
第三层应用服务器进一步适于:串行执行同一订单的多个任务ID的任务实体对应的任务。
可选地,第三层应用服务器进一步适于:判断是否成功执行任务实体对应的任务;
若失败,则检测任务执行次数是否大于或等于预设阈值;
若任务执行次数小于预设阈值,则将任务实体对应的任务存放到延迟线程池,以等待再次执行任务实体对应的任务;
若任务执行次数大于或等于预设阈值,则返回失败通知消息。
可选地,第二层应用服务器进一步适于:根据分库分表信息访问各自单元的数据库中分库分表,基于任务状态和/或任务创建时间对待调度任务进行筛选,捞取筛选后待调度任务的任务ID。
可选地,多个应用服务器预先在调度中心完成注册,注册信息包括:应用服务器标识及应用服务器调用方法。
根据本发明实施例的另一方面,提供了一种基于单元化的任务调度方法,方法基于上述基于单元化的任务调度系统而实现,方法包括:
从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求;
根据调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器;
根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将任务ID分发给对应的第三层应用服务器;
根据接收到的任务ID访问各自单元的数据库,捞取任务ID对应的任务实体,并执行任务实体对应的任务。
可选地,将任务ID分发给对应的第三层应用服务器进一步包括:
对所捞取的任务ID进行分析处理,确定任务ID中的路由标识位;
基于路由标识位将任务ID跨单元路由分发给对应的第三层应用服务器;或者,
基于路由标识位将任务ID分发给本单元内对应的第三层应用服务器。
可选地,将任务ID分发给对应的第三层应用服务器进一步包括:若多个任务ID属于同一订单,则第二层应用服务器将多个任务ID分发给同一第三层应用服务器;
执行任务实体对应的任务进一步包括:串行执行同一订单的多个任务ID的任务实体对应的任务。
可选地,在执行任务实体对应的任务之后,方法还包括:判断是否成功执行任务实体对应的任务;
若失败,则检测任务执行次数是否大于或等于预设阈值;
若任务执行次数小于预设阈值,则将任务实体对应的任务存放到延迟线程池,以等待再次执行任务实体对应的任务;
若任务执行次数大于或等于预设阈值,则返回失败通知消息。
可选地,根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID进一步包括:
根据分库分表信息访问各自单元的数据库中分库分表,基于任务状态和/或任务创建时间对待调度任务进行筛选,捞取筛选后待调度任务的任务ID。
可选地,多个应用服务器预先在调度中心完成注册,注册信息包括:应用服务器标识及应用服务器调用方法。
根据本发明实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于单元化的任务调度方法对应的操作。
根据本发明实施例的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述基于单元化的任务调度方法对应的操作。
根据本发明实施例提供的方案,调度中心从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求;第一层应用服务器根据调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器;第二层应用服务器根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将任务ID分发给对应的第三层应用服务器;第三层应用服务器根据接收到的任务ID访问各自单元的数据库,捞取任务ID对应的任务实体,并执行任务实体对应的任务。本发明实施例提供的基于单元化的任务调度方案,采用了单元化部署,在单元化部署的情况下,第二层应用服务器和第三层应用服务器所做的任务调度尽可能在各自的单元内封闭完成,由于是在本单元内完成的任务调度,从而克服了跨单元调度带来的延时提高和失败率提高的问题;基于三层分发的任务调度机制,避免单机成为瓶颈(即,单个应用服务器完成任务调度),从而克服了任务积压,影响线上业务的问题。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1A-图1E示出了根据本发明一个实施例的基于单元化的任务调度系统进行任务调度的原理框图;
图2示出了根据本发明一个实施例的基于单元化的任务调度方法的流程示意图;
图3示出了根据本发明另一个实施例的基于单元化的任务调度方法的流程示意图;
图4示出了根据本发明一个实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1A-图1E示出了根据本发明一个实施例的基于单元化的任务调度系统进行任务调度的原理框图。如图1A-图1E所示,该系统包括:调度中心以及被划分为三层的多个应用服务器,多个应用服务器分属不同的单元,多个应用服务器包含:多个第一层应用服务器、多个第二层应用服务器及多个第三层应用服务器。需要说明的是,图1A-图1E中所示多个应用服务器的数量仅为示意性的列举,并不代表真实的多个应用服务器的数量。
单元化是指应用服务器按照最小的可自循环的系统多地部署,分成多个单元,在单元内部可完成前端的交互、数据传输、数据存储等,举例说明,在北京、上海、深圳等地分别设有机房,每个机房上部署了多个应用服务器,这里的北京机房、上海机房、深圳机房就可以理解为单元。在本实施例中,单元之间的服务并不会互相影响,每个单元是封闭的,例如,北京机房宕机,并不会影响上海机房,上海机房依然可以对外提供服务;当北京机房宕机后,可以将北京机房的服务切换到上海机房和/或深圳机房。
其中,单元化是相对于中心化而言的,所谓的中心化是指由某一个机房上部署的应用服务器统一对外提供服务,举例说明,由部署在北京机房的应用服务器提供全国范围内的服务,全国范围内的用户的服务请求都被发送到北京机房的应用服务器,由北京机房的应用服务器向全国范围内的用户统一提供服务。
本实施例采用了三层分发机制,其中,三层分发机制是一种高效的任务调度机制,第一层划定任务捞取范围,第二层在本单元捞取任务ID,第三层在本单元捞取任务实体,并执行任务实体。
这里的被划分为三层的多个应用服务器是与三层分发机制相对应的。三层的多个应用服务器对应着相同的应用服务器,多个应用服务器是对等的,例如,共有100个应用服务器,被划分为三层的多个应用服务器都对应着这100个应用服务器,而是在不同的任务调度阶段,100个应用服务器做了不同的任务调度,多个应用服务器分属不同的单元,多个应用服务器包含:多个第一层应用服务器、多个第二层应用服务器及多个第三层应用服务器。其中,每个单元都对应一数据库。
在本实施例中,多个应用服务器预先在调度中心完成注册,注册信息包括:应用服务器标识及应用服务器调用方法,根据所注册的应用服务器标识及应用服务器调用方法可以调用相应的应用服务器。
调度中心适于:从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求。
在本实施例中,调度中心作为触发源,主要负责触发任务调度,例如,调度中心定时触发任务调度,比如,1分钟触发一次任务调度。
为了避免任务被重复调度,导致无意义的任务调度,调度中心需要从多个第一层应用服务器中随机选取任一第一层应用服务器,在选取时,可以将应用服务器的磁盘空间、内存负载、CPU负载作为选取依据来进行选取,例如,从多个第一层应用服务器中选取磁盘空间充足且内存负载低且CPU负载低的一个第一层应用服务器,在选取到第一层应用服务器后,调度中心向选取的第一层应用服务器触发任务调度请求,如图1A所示,调度中心从多个第一层应用服务器中随机选取了A单元的应用服务器1。
第一层应用服务器,适于根据调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器。
第一层应用服务器在接收到调度中心触发的任务调度请求后,需要先确定第一层应用服务器所对应的数据库存在哪些分库分表,其中,第一层应用服务器所对应的数据库用于存储数据,但是为了提升性能,这里将数据库进行了拆分,分库分表是指将数据库水平拆分为多个分库,每个分库存储部分数据,而每个分库又拆分为多个分表,举例说明,数据库拆分为10个分库,每个分库拆分为10个分表,那么该数据库所应存储的数据会被存储在10个分库各自对应的10个分表中,需要说明的是,分库是独立的,若其中某个分库有问题,并不会影响其它几个分库的数据访问。
第一层应用服务器在确定出所对应的数据库中存在哪些分库分表后,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器,其中,每个分库有对应的分库标识,每个分表有对应的分表标识,例如,10个分库的分库标识分别为00-09,分表的分表标识为0-9,分库00的10个分表的分库分表信息为000-009,这里仅是举例说明,不具有任何限定作用。这里的第一层应用服务器是向第二层的全部应用服务器分发分库分表信息,在分发时,是随意的将分库分表信息分发给分属不同的单元的多个第二层应用服务器,如图1B所示。
在本实施例中,第一层应用服务器向第二层应用服务器分发的是任务捞取的范围,因此,选取一个应用服务器并不会成为瓶颈,而且也不存在跨单元访问数据库的问题。第一层应用服务器是向全部的第二层应用服务器分发分库分表信息,从而最大程度运用全部应用服务器的能力,由全部的第二层应用服务器并行进行捞取,提升了任务处理能力。
第二层应用服务器,适于根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将任务ID分发给对应的第三层应用服务器。
第二层应用服务器在接收到第一层应用服务器分发的分库分表信息后,根据分库分表信息访问各自单元的数据库中对应的分库分表,其中,分属同一单元的多个第二层应用服务器根据分库分表信息访问本单元数据库中相应的分库分表,并行捞取本单元捞取待调度任务的任务ID,通过并行捞取任务ID,可以提升任务调度效率,从而避免任务积压,影响线上业务,如图1C所示,A单元中的多个第二层应用服务器根据分库分表信息访问A单元的数据库中分库分表,捞取待调度任务的任务ID,而B单元中的多个第二层应用服务器根据分库分表信息访问B单元的数据库中分库分表,捞取待调度任务的任务ID;在本实施例中,第二层应用服务器并不会跨单元捞取任务ID,通过避免跨单元捞取任务ID,从而提升了任务调度效率,降低了任务调度所需时间,也无需占用机房之间的通信带宽。第二层应用服务器在捞取到待调度任务的任务ID之后,将任务ID分发给对应的第三层应用服务器,如图1D所示,第二层应用服务器将任务ID分发给对应的第三层应用服务器。
在本实施例中,各单元的数据库所存储的数据相同,单元之间可以基于DRC双向复制工具实现数据库之间数据的实时同步,从而保证第二层应用服务器仅在本单元的数据库中分库分表捞取待调度任务的任务ID。
图1D仅是以附图的形式示出了第二层应用服务器向第三层应用服务器分发任务ID的一种实例,在本发明一种可选实施方式中,第二层应用服务器具体可以通过以下实现过程向第三层应用服务器分发任务ID:任务ID是任务标识的一种表示,是由多个标识位组成的,一个或一组标识位分别表示不同的含义,例如,在任务ID中,通过4个标识位来表示路由标识位,每个单元都有各自的路由标识位,例如,路由标识位0000-1000,表示A单元;路由标识位1001-2000,表示B单元,这里仅是举例说明,不具有任何限定作用,在捞取到任务ID之后,对所捞取的任务ID进行分析处理,主要是从任务ID中分析出哪几位表示路由标识位,进而确定该任务ID中路由标识位具体是什么,例如,通过对任务ID进行分析处理,确定了路由标识位为999,然后,基于路由标识位将任务ID跨单元路由分发给对应的第三层应用服务器;或者,基于路由标识位将任务ID分发给本单元内对应的第三层应用服务器。
下面结合具体实例说明基于路由标识位将任务ID跨单元路由分发给对应的第三层应用服务器的实现过程:第二层应用服务器通过对所捞取的任务ID进行分析处理,确定出任务ID中的路由标识位为999,确定该路由标识位对应着A单元,而该第二层应用服务器属于B单元,那么,第二层应用服务器则根据路由标识位999,将任务ID分发给A单元对应的第三层应用服务器,也就是说,跨单元路由分发。
再举例说明基于路由标识位将任务ID分发给本单元内对应的第三层应用服务器的实现过程:第二层应用服务器通过对所捞取的任务ID进行分析处理,确定出任务ID中的路由标识位为1005,确定该路由标识位对应着B单元,而该第二层应用服务器属于B单元,那么,第二层应用服务器则根据路由标识位1005,将任务ID分发给本单元(B单元)对应的第三层应用服务器,也就是说,本单元内分发,即图1D所示。可选地,对于订单,通常是由用户下单而产生的,因此,可以将用户ID(即,UID)作为路由标识位。
第三层应用服务器,适于根据接收到的任务ID访问各自单元的数据库,捞取任务ID对应的任务实体,并执行任务实体对应的任务。
在本实施例中,第三层应用服务器只会分发到属于本单元的任务ID,而不会分发到其它单元的任务ID。第三层应用服务器在接收到第二层应用服务器分发的任务ID后,根据接收到的任务ID访问各自单元的数据库,如图1E所示,A单元中的应用服务器1和应用服务器2分别根据接收到的任务ID访问A单元的数据库,然后,从单元的数据库中捞取出任务ID对应的任务实体,并执行任务实体对应的任务;B单元中的应用服务器1和应用服务器2分别根据接收到的任务ID访问B单元的数据库,然后,从单元的数据库中捞取出任务ID对应的任务实体,并执行任务实体对应的任务,这里并不会出现A单元中的应用服务器1访问B单元的数据库的情况。
第三层应用服务器是基于从第二层应用服务器分发到的任务ID,访问本单元的数据库获取到具体的任务实体,假设共有N个第三层应用服务器,那么同一时间N个任务并行推进,此外,单元之间数据相互隔离,互不影响,从而提升了任务调度效率。
第三层应用服务器由于仅访问本单元的数据库,而不会跨单元访问,从而能够避免因需要数据同步而存在的时效性问题,例如,捞取的可能不是最新数据或者因为DRC严重积压延时导致访问不到其他单元的数据。
在本发明一种可选实施方式中,本发明提供的基于单元化的任务调度系统可以用于实现订单任务的调度,一个订单可能会存在多个任务,因而,也就会存在多个任务ID,第二层应用服务器可以根据订单号识别出哪些任务ID同属于一个订单,对于多个任务ID属于同一订单的情况,第二层应用服务器会将多个任务ID分发给同一第三层应用服务器,而不是将多个任务分发给不同的第三层应用服务器,通过将同属于一个订单的多个任务ID分发给同一第三层应用服务器,可以保证每个任务调度都是有效的,避免了因将多个任务ID分发给多个第三层应用服务器,导致多个第三层应用服务器中只有一个第三层应用服务器获取到订单锁,其它第三层应用服务器未获取到订单锁而导致其它任务由于获取订单锁失败变成无效的调度分发。
第三层应用服务器在接收到第二层应用服务器分发的同一订单的多个任务ID后,串行执行同一订单的多个任务ID的任务实体对应的任务,避免应用服务器抢锁导致处理失败。
在本发明一种可选实施方式中,第三层应用服务器在执行任务实体对应的任务后,可能出现任务执行成功或执行失败两种情况,对于任务执行失败的情况,基于单元化的任务调度系统又做了其它处理,具体地,第三层应用服务器在执行完任务实体对应的任务之后,需要判断是否成功执行任务实体对应的任务;若失败,则检测任务执行次数是否大于或等于预设阈值;若任务执行次数小于预设阈值,则将任务实体对应的任务存放到延迟线程池,以等待再次执行任务实体对应的任务;若任务执行次数大于或等于预设阈值,则返回失败通知消息。
对于未成功执行的任务,设置了重试机制,即,重复执行任务实体对应的任务,为了避免无意义的重试浪费资源,需要设置最大重试次数,即,预设阈值,例如,预设阈值为3,在每次执行任务失败后,检测任务执行次数是否大于或等于3,若任务执行次数小于3,则将任务实体对应的任务存放到延迟线程池,以等待再次执行任务实体对应的任务;若任务执行次数大于或等于3,则返回失败通知消息,等待下次任务调度重新拉起。
通过重试机制可以避免因为下游抖动或者并发等原因导致任务执行失败的可能性,对于因为下游抖动或者并发等原因导致任务执行失败的情况,往往立刻重试可以成功,从而提升了任务执行的成功率。
在本发明一种可选实施方式中,数据库中存储了很多任务,然而,并不是所有的任务都需要进行调度处理,因此,就需要有选择性地筛选任务,具体地,第一层应用服务器除了将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器外,还可以将捞取规则分发给第二层应用服务器,例如,任务状态和/或任务创建时间,第二层应用服务器根据分库分表信息访问各自单元的数据库中分库分表,基于任务状态和/或任务创建时间对待调度任务进行筛选,捞取筛选后待调度任务的任务ID。
本发明实施例提供的基于单元化的任务调度系统可以用于有任务调度需求的任何应用场景中,例如,适用于本地生活的线上卡券类商品的售卖场景,线上卡券类商品的售卖业务包含了下单、支付、电子凭证发放、核销、退款、冲正等一系列的业务,针对这些业务都可以配置不同的调度任务,并利用基于单元化的任务调度系统来进行任务调度。
本发明实施例提供的基于单元化的任务调度系统,采用了单元化部署,在单元化部署的情况下,第二层应用服务器和第三层应用服务器所做的任务调度尽可能在各自的单元内封闭完成,由于是在本单元内完成的任务调度,从而克服了跨单元调度带来的延时提高和失败率提高的问题;基于三层分发的任务调度机制,避免单机成为瓶颈(即,单个应用服务器完成任务调度),从而克服了任务积压,影响线上业务的问题。
图2示出了根据本发明一个实施例的基于单元化的任务调度方法的流程示意图。该方法基于上述的基于单元化的任务调度系统而实现,如图2所示,该方法包括以下步骤:
步骤S201,从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求。
在本实施例中,调度中心作为触发源,主要负责触发任务调度,例如,调度中心定时触发任务调度,比如,1分钟触发一次任务调度。
为了避免任务被重复调度,导致无意义的任务调度,调度中心需要从多个第一层应用服务器中随机选取任一第一层应用服务器,在选取时,可以将应用服务器的磁盘空间、内存负载、CPU负载作为选取依据来进行选取,例如,从多个第一层应用服务器中选取磁盘空间充足且内存负载低且CPU负载低的一个第一层应用服务器,在选取到第一层应用服务器后,调度中心向选取的第一层应用服务器触发任务调度请求,如图1A所示,调度中心从多个第一层应用服务器中随机选取了A单元的应用服务器1。
步骤S202,根据调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器。
第一层应用服务器在接收到调度中心触发的任务调度请求后,需要先确定第一层应用服务器所对应的数据库存在哪些分库分表,其中,第一层应用服务器所对应的数据库用于存储数据,但是为了提升性能,这里将数据库进行了拆分,分库分表是指将数据库水平拆分为多个分库,每个分库存储部分数据,而每个分库又拆分为多个分表,举例说明,数据库拆分为10个分库,每个分库拆分为10个分表,那么该数据库所应存储的数据会被存储在10个分库各自对应的10个分表中,需要说明的是,分库是独立的,若其中某个分库有问题,并不会影响其它几个分库的数据访问。
第一层应用服务器在确定出所对应的数据库中存在哪些分库分表后,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器,其中,每个分库有对应的分库标识,每个分表有对应的分表标识,例如,10个分库的分库标识分别为00-09,分表的分表标识为0-9,分库00的10个分表的分库分表信息为000-009,这里仅是举例说明,不具有任何限定作用。这里的第一层应用服务器是向第二层的全部应用服务器分发分库分表信息,在分发时,是随意的将分库分表信息分发给分属不同的单元的多个第二层应用服务器,如图1B所示。
在本实施例中,第一层应用服务器向第二层应用服务器分发的是任务捞取的范围,因此,选取一个应用服务器并不会成为瓶颈,而且也不存在跨单元访问数据库的问题。第一层应用服务器是向全部的第二层应用服务器分发分库分表信息,从而最大程度运用全部应用服务器的能力。
步骤S203,根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将任务ID分发给对应的第三层应用服务器。
第二层应用服务器在接收到第一层应用服务器分发的分库分表信息后,根据分库分表信息访问各自单元的数据库中对应的分库分表,其中,分属同一单元的多个第二层应用服务器根据分库分表信息访问本单元数据库中相应的分库分表,并行捞取本单元捞取待调度任务的任务ID,通过并行捞取任务ID,可以提升任务调度效率,从而避免任务积压,影响线上业务,如图1C所示,A单元中的多个第二层应用服务器根据分库分表信息访问A单元的数据库中分库分表,捞取待调度任务的任务ID,而B单元中的多个第二层应用服务器根据分库分表信息访问B单元的数据库中分库分表,捞取待调度任务的任务ID;在本实施例中,第二层应用服务器并不会跨单元捞取任务ID,通过避免跨单元捞取任务ID,从而提升了任务调度效率,降低了任务调度所需时间,也无需占用机房之间的通信带宽。第二层应用服务器在捞取到待调度任务的任务ID之后,将任务ID分发给对应的第三层应用服务器,如图1D所示,第二层应用服务器将任务ID分发给对应的第三层应用服务器。
在本实施例中,各单元的数据库所存储的数据相同,单元之间可以基于DRC双向复制工具实现数据库之间数据的实时同步,从而保证第二层应用服务器仅在本单元的数据库中分库分表捞取待调度任务的任务ID。
步骤S204,根据接收到的任务ID访问各自单元的数据库,捞取任务ID对应的任务实体,并执行任务实体对应的任务。
在本实施例中,第三层应用服务器只会分发到属于本单元的任务ID,而不会分发到其它单元的任务ID。第三层应用服务器在接收到第二层应用服务器分发的任务ID后,根据接收到的任务ID访问各自单元的数据库,如图1E所示,A单元中的应用服务器1和应用服务器2分别根据接收到的任务ID访问A单元的数据库,然后,从单元的数据库中捞取出任务ID对应的任务实体,并执行任务实体对应的任务;B单元中的应用服务器1和应用服务器2分别根据接收到的任务ID访问B单元的数据库,然后,从单元的数据库中捞取出任务ID对应的任务实体,并执行任务实体对应的任务,这里并不会出现A单元中的应用服务器1访问B单元的数据库的情况。
第三层应用服务器是基于从第二层应用服务器分发到的任务ID,访问本单元的数据库获取到具体的任务实体,假设共有N个第三层应用服务器,那么同一时间N个任务并行推进,此外,单元之间数据相互隔离,互不影响,从而提升了任务调度效率。
本发明实施例提供的基于单元化的任务调度方法,采用了单元化部署,在单元化部署的情况下,第二层应用服务器和第三层应用服务器所做的任务调度尽可能在各自的单元内封闭完成,由于是在本单元内完成的任务调度,从而克服了跨单元调度带来的延时提高和失败率提高的问题;基于三层分发的任务调度机制,避免单机成为瓶颈(即,单个应用服务器完成任务调度),从而克服了任务积压,影响线上业务的问题。
图3示出了根据本发明另一个实施例的基于单元化的任务调度方法的流程示意图。该方法基于上述的基于单元化的任务调度系统而实现,如图3所示,该方法包括以下步骤:
步骤S301,从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求。
步骤S302,根据调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器。
图3所示实施例中步骤S301-步骤S302与图2所示实施例中的步骤S201-步骤S202类似,这里不再赘述。
步骤S303,根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,对所捞取的任务ID进行分析处理,确定任务ID中的路由标识位。
任务ID是任务标识的一种表示,是由多个标识位组成的,一个或一组标识位分别表示不同的含义,例如,在任务ID中,通过4个标识位来表示路由标识位,每个单元都有各自的路由标识位,例如,路由标识位0000-1000,表示A单元;路由标识位1001-2000,表示B单元,这里仅是举例说明,不具有任何限定作用,在捞取到任务ID之后,对所捞取的任务ID进行分析处理,主要是从任务ID中分析出哪几位表示路由标识位,进而确定该任务ID中路由标识位具体是什么,例如,通过对任务ID进行分析处理,确定了路由标识位为999,然后,基于路由标识位将任务ID跨单元路由分发给对应的第三层应用服务器;或者,基于路由标识位将任务ID分发给本单元内对应的第三层应用服务器。
步骤S304,基于路由标识位将任务ID跨单元路由分发给对应的第三层应用服务器。
下面结合具体实例说明基于路由标识位将任务ID跨单元路由分发给对应的第三层应用服务器的实现过程:第二层应用服务器通过对所捞取的任务ID进行分析处理,确定出任务ID中的路由标识位为999,确定该路由标识位对应着A单元,而该第二层应用服务器属于B单元,那么,第二层应用服务器则根据路由标识位999,将任务ID分发给A单元对应的第三层应用服务器,也就是说,跨单元路由分发。
步骤S305,基于路由标识位将任务ID分发给本单元内对应的第三层应用服务器。
再举例说明基于路由标识位将任务ID分发给本单元内对应的第三层应用服务器的实现过程:第二层应用服务器通过对所捞取的任务ID进行分析处理,确定出任务ID中的路由标识位为1005,确定该路由标识位对应着B单元,而该第二层应用服务器属于B单元,那么,第二层应用服务器则根据路由标识位1005,将任务ID分发给本单元(B单元)对应的第三层应用服务器,也就是说,本单元内分发,即图1D所示。可选地,对于订单,通常是由用户下单而产生的,因此,可以将用户ID(即,UID)作为路由标识位。
步骤S306,根据接收到的任务ID访问各自单元的数据库,捞取任务ID对应的任务实体,并执行任务实体对应的任务。
图3所示实施例中步骤S306与图2所示实施例中的步骤S204类似,这里不再赘述。
步骤S307,判断是否成功执行任务实体对应的任务,若否,则执行步骤S308;若是,则执行步骤S310。
步骤S308,检测任务执行次数是否大于或等于预设阈值,若否,则执行步骤S309;若是,则执行步骤S311。
步骤S309,将任务实体对应的任务存放到延迟线程池,以等待再次执行任务实体对应的任务。
步骤S310,返回成功通知消息。
步骤S311,返回失败通知消息。
第三层应用服务器在执行任务实体对应的任务后,可能出现任务执行成功或执行失败两种情况,对于任务执行失败的情况,又做了其它处理,具体地,第三层应用服务器在执行完任务实体对应的任务之后,需要判断是否成功执行任务实体对应的任务;若失败,则检测任务执行次数是否大于或等于预设阈值;若任务执行次数小于预设阈值,则将任务实体对应的任务存放到延迟线程池,以等待再次执行任务实体对应的任务;若任务执行次数大于或等于预设阈值,则返回失败通知消息。
对于未成功执行的任务,设置了重试机制,即,重复执行任务实体对应的任务,为了避免无意义的重试浪费资源,需要设置最大重试次数,即,预设阈值,例如,预设阈值为3,在每次执行任务失败后,检测任务执行次数是否大于或等于3,若任务执行次数小于3,则将任务实体对应的任务存放到延迟线程池,以等待再次执行任务实体对应的任务;若任务执行次数大于或等于3,则返回失败通知消息,等待下次任务调度重新拉起。
通过重试机制可以避免因为下游抖动或者并发等原因导致任务执行失败的可能性,对于因为下游抖动或者并发等原因导致任务执行失败的情况,往往立刻重试可以成功,从而提升了任务执行的成功率。
在本发明一种可选实施方式中,本发明提供的基于单元化的任务调度方法可以用于实现订单任务的调度,一个订单可能会存在多个任务,因而,也就会存在多个任务ID,第二层应用服务器可以根据订单号识别出哪些任务ID同属于一个订单,对于多个任务ID属于同一订单的情况,第二层应用服务器会将多个任务ID分发给同一第三层应用服务器,而不是将多个任务分发给不同的第三层应用服务器,通过将同属于一个订单的多个任务ID分发给同一第三层应用服务器,可以保证每个任务调度都是有效的,避免了因将多个任务ID分发给多个第三层应用服务器,导致多个第三层应用服务器中只有一个第三层应用服务器获取到订单锁,其它第三层应用服务器未获取到订单锁而导致其它任务由于获取订单锁失败变成无效的调度分发。
第三层应用服务器在接收到第二层应用服务器分发的同一订单的多个任务ID后,串行执行同一订单的多个任务ID的任务实体对应的任务,避免应用服务器抢锁导致处理失败。
在本发明一种可选实施方式中,数据库中存储了很多任务,然而,并不是所有的任务都需要进行调度处理,因此,就需要有选择性地筛选任务,具体地,第一层应用服务器除了将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器外,还可以将捞取规则分发给第二层应用服务器,例如,任务状态和/或任务创建时间,第二层应用服务器根据分库分表信息访问各自单元的数据库中分库分表,基于任务状态和/或任务创建时间对待调度任务进行筛选,捞取筛选后待调度任务的任务ID。
在本实施例中,多个应用服务器预先在调度中心完成注册,注册信息包括:应用服务器标识及应用服务器调用方法,根据所注册的应用服务器标识及应用服务器调用方法可以调用相应的应用服务器。
本发明实施例提供的基于单元化的任务调度方法,采用了单元化部署,在单元化部署的情况下,第二层应用服务器和第三层应用服务器所做的任务调度尽可能在各自的单元内封闭完成,由于是在本单元内完成的任务调度,从而克服了跨单元调度带来的延时提高和失败率提高的问题;基于三层分发的任务调度机制,避免单机成为瓶颈(即,单个应用服务器完成任务调度),从而克服了任务积压,影响线上业务的问题;通过重试机制,提升了任务调度成功率。
本申请实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于单元化的任务调度方法。
图4示出了根据本发明一个实施例的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述基于单元化的任务调度实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行上述任意方法实施例中的基于单元化的任务调度方法。程序410中各步骤的具体实现可以参见上述基于单元化的任务调度实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (14)

1.一种基于单元化的任务调度系统,包括:调度中心以及被划分为三层的多个应用服务器,所述多个应用服务器分属不同的单元,其中,一个单元包括至少一个第一层应用服务器、至少一个第二层应用服务器及至少一个第三层应用服务器及一个数据库,各单元的数据库所存储的数据相同;
所述多个应用服务器包含:多个第一层应用服务器、多个第二层应用服务器及多个第三层应用服务器;
调度中心适于:从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求;
第一层应用服务器,适于根据所述调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器;
第二层应用服务器,适于根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将所述任务ID分发给对应的第三层应用服务器;
第三层应用服务器,适于根据接收到的所述任务ID访问各自单元的数据库,捞取所述任务ID对应的任务实体,并执行所述任务实体对应的任务。
2.根据权利要求1所述的系统,其中,所述第二层应用服务器进一步适于:对所捞取的任务ID进行分析处理,确定所述任务ID中的路由标识位;
基于所述路由标识位将所述任务ID跨单元路由分发给对应的第三层应用服务器;或者,
基于所述路由标识位将所述任务ID分发给本单元内对应的第三层应用服务器。
3.根据权利要求1或2所述的系统,其中,所述第二层应用服务器进一步适于:若多个任务ID属于同一订单,则将多个任务ID分发给同一第三层应用服务器;
所述第三层应用服务器进一步适于:串行执行同一订单的多个任务ID的任务实体对应的任务。
4.根据权利要求1或2所述的系统,其中,所述第三层应用服务器进一步适于:判断是否成功执行所述任务实体对应的任务;
若失败,则检测任务执行次数是否大于或等于预设阈值;
若任务执行次数小于预设阈值,则将所述任务实体对应的任务存放到延迟线程池,以等待再次执行所述任务实体对应的任务;
若任务执行次数大于或等于预设阈值,则返回失败通知消息。
5.根据权利要求1或2所述的系统,其中,所述第二层应用服务器进一步适于:根据分库分表信息访问各自单元的数据库中分库分表,基于任务状态和/或任务创建时间对待调度任务进行筛选,捞取筛选后待调度任务的任务ID。
6.根据权利要求1或2所述的系统,其中,多个应用服务器预先在调度中心完成注册,注册信息包括:应用服务器标识及应用服务器调用方法。
7.一种基于单元化的任务调度方法,所述方法基于权利要求1-6中任一项所述的基于单元化的任务调度系统而实现,所述方法包括:
从多个第一层应用服务器中随机选取任一第一层应用服务器,向选取的第一层应用服务器触发任务调度请求;
根据所述调度中心触发的任务调度请求,将待调度任务所属的分库分表信息分发给分属不同的单元的多个第二层应用服务器;
根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID,将所述任务ID分发给对应的第三层应用服务器;
根据接收到的所述任务ID访问各自单元的数据库,捞取所述任务ID对应的任务实体,并执行所述任务实体对应的任务。
8.根据权利要求7所述的方法,其中,将所述任务ID分发给对应的第三层应用服务器进一步包括:
对所捞取的任务ID进行分析处理,确定所述任务ID中的路由标识位;
基于所述路由标识位将所述任务ID跨单元路由分发给对应的第三层应用服务器;或者,
基于所述路由标识位将所述任务ID分发给本单元内对应的第三层应用服务器。
9.根据权利要求7或8所述的方法,其中,将所述任务ID分发给对应的第三层应用服务器进一步包括:若多个任务ID属于同一订单,则所述第二层应用服务器将多个任务ID分发给同一第三层应用服务器;
执行所述任务实体对应的任务进一步包括:串行执行同一订单的多个任务ID的任务实体对应的任务。
10.根据权利要求7或8所述的方法,其中,在执行所述任务实体对应的任务之后,所述方法还包括:判断是否成功执行所述任务实体对应的任务;
若失败,则检测任务执行次数是否大于或等于预设阈值;
若任务执行次数小于预设阈值,则将所述任务实体对应的任务存放到延迟线程池,以等待再次执行所述任务实体对应的任务;
若任务执行次数大于或等于预设阈值,则返回失败通知消息。
11.根据权利要求7或8所述的方法,其中,根据分库分表信息访问各自单元的数据库中分库分表,捞取待调度任务的任务ID进一步包括:
根据分库分表信息访问各自单元的数据库中分库分表,基于任务状态和/或任务创建时间对待调度任务进行筛选,捞取筛选后待调度任务的任务ID。
12.根据权利要求7或8所述的方法,其中,多个应用服务器预先在调度中心完成注册,注册信息包括:应用服务器标识及应用服务器调用方法。
13.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求7-12中任一项所述的基于单元化的任务调度方法对应的操作。
14.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求7-12中任一项所述的基于单元化的任务调度方法对应的操作。
CN201910964976.3A 2019-10-11 2019-10-11 基于单元化的任务调度系统及方法 Active CN110795218B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910964976.3A CN110795218B (zh) 2019-10-11 2019-10-11 基于单元化的任务调度系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910964976.3A CN110795218B (zh) 2019-10-11 2019-10-11 基于单元化的任务调度系统及方法

Publications (2)

Publication Number Publication Date
CN110795218A CN110795218A (zh) 2020-02-14
CN110795218B true CN110795218B (zh) 2022-03-01

Family

ID=69438991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910964976.3A Active CN110795218B (zh) 2019-10-11 2019-10-11 基于单元化的任务调度系统及方法

Country Status (1)

Country Link
CN (1) CN110795218B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301178A (zh) * 2016-04-14 2017-10-27 阿里巴巴集团控股有限公司 数据查询处理方法、装置及系统
CN108762931A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 基于分布式调度系统的任务调度方法、服务器及存储介质
CN109542600A (zh) * 2018-11-15 2019-03-29 口碑(上海)信息技术有限公司 分布式任务调度系统及方法
CN109614209A (zh) * 2018-10-26 2019-04-12 阿里巴巴集团控股有限公司 一种任务处理方法、应用服务器及系统
CN110008018A (zh) * 2019-01-17 2019-07-12 阿里巴巴集团控股有限公司 一种批量任务处理方法、装置及设备
CN110175201A (zh) * 2019-04-10 2019-08-27 阿里巴巴集团控股有限公司 业务数据处理方法、系统、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9444695B2 (en) * 2014-01-30 2016-09-13 Xerox Corporation Methods and systems for scheduling a task

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301178A (zh) * 2016-04-14 2017-10-27 阿里巴巴集团控股有限公司 数据查询处理方法、装置及系统
CN108762931A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 基于分布式调度系统的任务调度方法、服务器及存储介质
CN109614209A (zh) * 2018-10-26 2019-04-12 阿里巴巴集团控股有限公司 一种任务处理方法、应用服务器及系统
CN109542600A (zh) * 2018-11-15 2019-03-29 口碑(上海)信息技术有限公司 分布式任务调度系统及方法
CN110008018A (zh) * 2019-01-17 2019-07-12 阿里巴巴集团控股有限公司 一种批量任务处理方法、装置及设备
CN110175201A (zh) * 2019-04-10 2019-08-27 阿里巴巴集团控股有限公司 业务数据处理方法、系统、装置及电子设备

Also Published As

Publication number Publication date
CN110795218A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US11580107B2 (en) Bucket data distribution for exporting data to worker nodes
US11599541B2 (en) Determining records generated by a processing task of a query
US11341131B2 (en) Query scheduling based on a query-resource allocation and resource availability
US11593377B2 (en) Assigning processing tasks in a data intake and query system
US11921672B2 (en) Query execution at a remote heterogeneous data store of a data fabric service
EP3669282B1 (en) Method and apparatus for managing a service request in a blockchain network
US20210117425A1 (en) Management of distributed computing framework components in a data fabric service system
US10726009B2 (en) Query processing using query-resource usage and node utilization data
US20190258637A1 (en) Partitioning and reducing records at ingest of a worker node
US20190258636A1 (en) Record expansion and reduction based on a processing task in a data intake and query system
US9489237B1 (en) Dynamic tree determination for data processing
CN101146127B (zh) 一种分布式系统中客户端缓存更新的方法和装置
CN108875091A (zh) 一种统一管理的分布式网络爬虫系统
US20170207984A1 (en) Guaranteed response pattern
CN110287009A (zh) 一种工作节点选择方法、装置、存储介质及服务器
CN111090822A (zh) 业务对象的推送方法及装置
JP6353935B2 (ja) コンテンツサービスで個人化された通知を提供する方法およびシステム
CN109218385B (zh) 处理数据的方法和装置
CN107357885A (zh) 数据写入方法及装置、电子设备、计算机存储介质
CN110908797B (zh) 调用请求数据处理方法、装置、设备、存储介质及系统
CN110795218B (zh) 基于单元化的任务调度系统及方法
CN108062224B (zh) 基于文件句柄的数据读写方法、装置及计算设备
CN116828035A (zh) 一种基于云计算的数据集成系统
CN110235158B (zh) 日历上的经分类的时间指定
CN115373822A (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
GR01 Patent grant
GR01 Patent grant