CN111913784B - 任务调度方法及装置、网元、存储介质 - Google Patents
任务调度方法及装置、网元、存储介质 Download PDFInfo
- Publication number
- CN111913784B CN111913784B CN201910377359.3A CN201910377359A CN111913784B CN 111913784 B CN111913784 B CN 111913784B CN 201910377359 A CN201910377359 A CN 201910377359A CN 111913784 B CN111913784 B CN 111913784B
- Authority
- CN
- China
- Prior art keywords
- priority
- task
- node
- service
- service group
- 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 74
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 239000000758 substrate Substances 0.000 claims 2
- 238000004422 calculation algorithm Methods 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000977 initiatory effect Effects 0.000 description 8
- 238000009826 distribution Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 235000014510 cooky Nutrition 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
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)
- Exchange Systems With Centralized Control (AREA)
Abstract
本发明公开了一种任务调度方法及装置、网元、存储介质。所述任务调度方法包括:根据任务的属性,确定执行所述任务的专业业务组;从所述专业业务组中选择空闲的工作节点执行所述任务;若所述专业业务组中无空闲的工作节点,从通用业务组中选择空闲的工作节点执行所述任务。本发明中任务由任务的专业业务组或通用业务组中空闲的工作节点执行,减少了由于某一业务同时发起大量任务,而造成其它业务发起的任务无法正常执行的风险。同时,在某一专业业务组中没有空闲的工作节点时,通用工作组的工作节点可用来补充执行该专业业务组对应的任务,从而使整个系统可具有较高的执行效率。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种任务调度方法及装置、网元、存储介质。
背景技术
现有的任务调度方案通常按照任务发起时间,对任务进行调度。但在实际生产环节中,仍然不可避免的会有如下情形发生,某一业务突然同时发起了大量任务,导致整个系统的大部分或全部工作节点被抢占,而使其它业务发起的任务无法正常执行,造成上述多个其它业务发起的任务被延时执行,从而使系统整体运行效率较差。
发明内容
本发明实施例提供一种任务调度装置及装置、网元、存储介质。
本发明的技术方案是这样实现的:
一方面,提供一种任务调度方法,包括:
根据任务的属性,确定执行所述任务的专业业务组;
从所述专业业务组中选择空闲的工作节点执行所述任务;
若所述专业业务组中无空闲的工作节点,从通用业务组中选择空闲的工作节点执行所述任务。
进一步地,所述方法还包括:
根据所述任务的属性,确定所述任务的业务优先级;
所述从所述专业业务组中选择空闲的工作节点执行所述任务,包括:
根据所述业务优先级,从所述专业业务组中选择空闲的工作节点执行所述任务。
进一步地,所述从所述专业业务组中选择空闲的工作节点执行所述任务包括:
从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务。
进一步地,所述从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,包括:
确定所述专业业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N;
若存在,选择所述专业业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级。
进一步地,所述从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,还包括:
若不存在,选择所述专业业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N,PX-1低于或等于所述业务优先级。
进一步地,所述若所述专业业务组中无空闲的工作节点,从通用业务组中选择空闲的工作节点执行所述任务,包括:
从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务。
进一步地,所述从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,包括:
确定所述通用业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N;
若存在,选择所述通用业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级。
进一步地,所述从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,还包括:
若不存在,选择所述通用业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N,PX-1低于或等于所述业务优先级。
进一步地,所述方法还包括:
在所述专业业务组和通用业务组中能够执行第一业务优先级和第二业务优先级的空闲工作节点不能够同时执行第一业务优先级的任务和所述第二业务优先级的任务时,优先执行所述第一业务优先级的任务,其中,所述第一业务优先级高于所述第二业务优先级。
进一步地,所述方法还包括:
若所述专业业务组和所述通用业务组中都不存在空闲的且节点优先级低于或等于所述业务优先级的工作节点,则等待节点优先级低于或等于所述业务优先级的工作节点空闲后执行所述任务。
本发明还提供了一种任务调度装置,包括:
第一确定单元,用于根据任务的属性,确定执行所述任务的专业业务组;
第一选择单元,用于从所述专业业务组中选择空闲的工作节点执行所述任务;
第二选择单元,用于若所述专业业务组中无空闲的工作节点,从通用业务组中选择空闲的工作节点执行所述任务。
进一步地,所述装置还包括:
第二确定单元,用于根据所述任务的属性,确定所述任务的业务优先级;
第一选择单元,用于根据所述业务优先级,从所述专业业务组中选择空闲的工作节点执行所述任务。
进一步地,所述装置还包括:
执行单元,用于在所述专业业务组和通用业务组中能够执行第一业务优先级和第二业务优先级的空闲工作节点不能够同时执行第一业务优先级的任务和所述第二业务优先级的任务时,优先执行所述第一业务优先级的任务,其中,所述第一业务优先级高于所述第二业务优先级。
进一步地,所述装置还包括:
等待单元,用于若所述专业业务组和所述通用业务组中都不存在空闲的且节点优先级低于或等于所述业务优先级的工作节点,则等待节点优先级低于或等于所述业务优先级的工作节点空闲后执行所述任务。
本发明还提供了一种网元,包括:
收发器、存储器及处理器;
所述存储器,用于存储计算机可执行指令,所述可执行指令能够实现上述的任务调度方法;
所述处理器,分别与收发器及存储器连接,用于控制所述收发器及所述存储器,执行所述计算机可执行指令。
本发明还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现上述的任务调度方法。
本发明提供的任务调度方法及装置、网元、存储介质,任务由任务的专业业务组中空闲的工作节点来执行,在所述专业业务组中无空闲的工作节点,任务也可由通用业务组中空闲的工作节点来执行。本发明先按照专业业务组和通用业务组对系统中的工作节点进行预分配。任务由任务的专业业务组和通用业务组中的工作节点来执行,而不占用其它专业业务组中工作节点。即使系统中的某一业务突然同时发起了大量任务,也不可能抢占系统中的全部工作节点。其它任务仍然可以由其对应的专业业务组中空闲的工作节点来执行。本发明减少了由于某一业务同时发起大量任务,而造成其它业务发起的任务无法正常执行的风险,从而使系统整体上可具有较高的运行效率。
此外,某一业务运行所需要的工作节点的数量通常是不断变化的。如果都以业务运行所需最多的工作节点的数量,来指定各专业业务组中的工作节点的数量,可能会造成系统资源的浪费。在某一专业业务组中没有空闲的工作节点时,通用工作组的工作节点可用来补充执行该专业业务组对应的任务,从而使整个系统可具有较高的执行效率。
附图说明
图1为本发明实施例提供的一种任务调度方法的流程示意图;
图2为本发明实施例提供的一种任务调度装置示意图;
图3为本发明实施例提供的一种网元结构示意图;
图4为本发明实施例提供的一种任务调度爬虫系统的总体架构图;
图5为本发明实施例提供的一种任务调度爬虫系统的总体流程图;
图6为本发明实施例提供的一种任务调度爬虫系统中的任务生成模块producer的流程示意图;
图7为本发明实施例提供的一种任务调度爬虫系统中的任爬虫工作节点worker的流程示意图;
图8为本发明实施例提供的一种任务调度爬虫系统中的调度中心模块的流程示意图;
图9为本发明实施例提供的一种空闲资源计算算法的流程示意图;
图10为本发明实施例提供的一种任务调度爬虫系统的部署流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明实施例进行详细说明。图1为本发明实施例提供的一种任务调度方法的流程示意图,如图1所示,所述任务调度方法包括以下步骤:
步骤101,根据任务的属性,确定执行所述任务的专业业务组;
步骤102,从所述专业业务组中选择空闲的工作节点执行所述任务;
步骤103,若所述专业业务组中无空闲的工作节点,从通用业务组中选择空闲的工作节点执行所述任务。
本发明先按照业务组对系统中的工作节点进行预分配。业务组包括:专业业务组和通用业务组。系统中运行的每一个任务都对应于一种专业业务组,系统中的每一个工作节点属于一种业务组。
本发明实施例提供的技术方案中,选择任务的专业业务组和通用业务组中的工作节点,执行所述任务。如此,通过业务组对系统中的节点资源进行划分,解决了现有技术的某些情形下,整个系统的大部分或全部工作节点被某一业务单独抢占,而使其它业务发起的任务无法正常执行的技术问题。
专业业务组可根据系统中程序对应的不同业务功能进行划分,比如:划分为“微博”业务组、“博客”业务组、“论坛”业务组等。专业业务组也可根据系统的执行需要进行划分,比如:某银行的统计系统需要分别对各个省的每日经营情况进行分析,则可将专业业务组按省进行划分为“北京”业务组、“上海”业务组等。总之,专业业务组可根据具体需求进行灵活地划分和调整,本发明实例不做过多的限制。
系统中的工作节点归属于一种业务组。专业业务组中的工作节点可接受本专业业务组对应的任务,而通用业务组中的工作节点可以接受所有任务。任务在其专业业务组中的工作节点都忙的情况下,才能选择通用业务组中的工作节点,执行所述任务。本发明通过设置通用工作组,起到均衡各专业业务组中的工作节点的数量作用。
例如,某系统仅包括两种业务,分别对应专业业务组A和专业业务组B。T1时刻,专业业务组A运行需要的工作节点数量为100个,专业业务组B运行需要的工作节点数量为50个;T2时刻,专业业务组A运行需要的工作节点数量为50个,专业业务组B运行需要的工作节点数量为100个。如果没有设置通用工作组,专业业务组A和专业业务组B中的工作节点数量都需要设置成100个,才能满足运行的需要,此时系统共需要200个工作节点。但如果设置通用工作组中的工作节点数量为50个,专业业务组A和专业业务组B中的工作节点数量设置成50个。在T1时刻,由专业业务组A和通用业务组中的工作节点共同执行专业业务组A对应的任务;在T2时刻,由专业业务组B和通用业务组中的工作节点共同执行专业业务组B对应的任务。此时系统仅需要150个工作节点就能满足运行的需要。因此,本发明通过设置通用工作组,起到动态均衡各专业业务组中的工作节点的数量。且相比以业务运行所需最多的工作节点的数量,来指定各专业业务组中的工作节点的数量的节点分配方案,本发明的方案可以减少系统资源浪费。
进一步地,所述方法还包括:
根据所述任务的属性,确定所述任务的业务优先级;
所述从所述专业业务组中选择空闲的工作节点执行所述任务,包括:
根据所述业务优先级,从所述专业业务组中选择空闲的工作节点执行所述任务。
业务优先级是一种对任务执行顺序的限定。在同一专业业务组中,当空闲节点的数量不足以执行所有任务时,业务优先级高的任务被系统先执行,业务优先级低的任务被系统后执行。在从所述专业业务组中选择空闲的工作节点执行所述任务时,考虑业务优先级,可以使任务调度方案更加符合用户的实际需求,并使任务调用更加有序化。
本发明可应对实际工作场景中,不同业务所发起的任务对于工作延时的敏感度有较大差异,并且任务数量和波动程度都不相同且无法精确预估的情况。本发明中提供的任务调度方法,根据业务优先级,从专业业务组或通用业务组中选择空闲的工作节点执行任务,可将重点业务发起的任务设置具有较高的业务优先级,从而在工作节点数量有限的前提下,较大程度的保障重点业务的低延时;同时,各任务由其对应的专业业务组或通用业务组中空闲的工作节点执行,使每个专业业务组对应的任务都得到一定程度的公平调用机会,照顾到系统对各业务调度过程中的公平和效率。本发明中提供的任务调度装置是一种实际环境下,原理清晰且行之有效的工作装置。
进一步地,所述从所述专业业务组中选择空闲的工作节点执行所述任务包括:
在所述专业业务组中,优先选择空闲的且能够执行所述任务的节点优先级较低的工作节点执行所述任务;
所述若所述专业业务组中无空闲的工作节点,从通用业务组中选择空闲的工作节点执行所述任务,包括:
若所述专业业务组中无空闲的工作节点,在所述通用业务组中优先选择空闲的且能够执行所述任务的节点优先级较低的工作节点执行所述任务。
在本发明中,任务可被节点优先级低于或等于所述业务优先级的工作节点执行。上述方案中能够执行所述任务的节点为节点优先级低于或等于所述业务优先级的工作节点。
在专业业务组和通用业务组中,能够执行所述任务的节点中,优先选择那些节点优先级较低的工作节点来执行任务。这样就会在保证系统正常运行的前提下,尽可能的保证系统中存在有空闲的较高节点优先级的工作节点,而较高节点优先级的工作节点能用来执行具有较高业务优先级的任务,进而一定程度上保证具有较高业务优先级的任务可以被及时执行。
在对系统中的工作节点按照专业业务组和节点优先级进行划分时,可将运行速度快,资源利用率高的工作节点划入比较紧急和重要的专业业务组中,或者划入节点优先级高的节点分组中。如此,可保证比较紧急和重要的业务组,或者业务优先级较高的任务可以更快速地被执行。
可选地,低优先级的工作节点数目多于中优先级的工作节点数目,中优先级的工作节点数目多于高优先级的工作节点数目。由于系统中的低优先级的工作节点会被优先进行分配,且业务较高的任务也可调用节点优先级较高的工作节点。因此,节点优先级较低的工作节点的被调用频率较高。设置较多数目的低优先级工作节点,以保证系统中的较低业务优先级的任务也可被及时执行。
进一步地,所述根据所述业务优先级,从所述专业业务组中选择空闲的工作节点执行所述任务,包括:
从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务。
任务可由同一专业业务组中的节点优先级低于或等于所述任务的业务优先级的工作节点来执行,分配工作节点时总是优先分配较低节点优先级的工作节点。这样就会在保证系统正常运行的前提下,尽可能的保证系统中存在有空闲的较高节点优先级的工作节点,而较高节点优先级的工作节点能用来执行具有较高业务优先级的任务,进而一定程度上保证具有较高业务优先级的任务可以被及时执行。
进一步地,确定所述专业业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N;
若存在,选择所述专业业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级。
本发明中节点优先级为P1至PN,P1对应的节点优先级高于P2对应的节点优先级,……,Pn-1对应的节点优先级高于Pn对应的节点优先级。在为待执行任务分配节点的时候,从任务的专业业务组中,先选择空闲的节点优先级最低的工作节点,即选择空闲的节点优先级为PN的工作节点。如果存在空闲的节点优先级为PN的工作节点,则以该空闲的工作节点执行所述任务。如果不存在空闲的节点优先级为PN的工作节点,则选择空闲的节点优先级次低的工作节点,即选择空闲的节点优先级为PN-1的工作节点。以此类推,直到选择到空闲的工作节点,执行所述任务。其中,执行所述任务的空闲的工作节点的节点优先级要低于或等于所述任务的业务优先级。
上述方法提出了一种优先级兼容的节点分配方法。任务可由同一专业业务组中的节点优先级低于或等于所述任务的业务优先级的工作节点来执行,且分配节点的时候,优先选择节点优先级较低的工作节点。在既存在空闲的较低优先级的工作节点,又存在空闲的较高优先级的工作节点的情况下,无论具有较低业务优先级的任务,还是具有较高业务优先级的任务,都会选择空闲的较低优先级的工作节点来执行。从而在保证系统正常运行的前提下,尽可能的保证系统中存在有空闲的较高节点优先级的工作节点,而较高节点优先级的工作节点能用来执行具有较高业务优先级的任务,进而一定程度上保证具有较高业务优先级的任务可以被及时执行。
进一步地,所述从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,还包括:
若不存在,选择所述专业业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N,PX-1低于或等于所述业务优先级。
在为任务分配节点的时候,在任务的专业业务组中,如果不存在空闲的节点优先级为PX的工作节点,则在任务的专业业务组中,继续选择空闲的节点优先级为PX-1的工作节点,即选择节点优先级比PX高一级的PX-1的工作节点。
选择空闲节点时,通过逐步提高待选择节点的优先级级别,从而尽可能选择具有较低节点优先级的工作节点,以执行所述任务。上述技术方案,选择了目前所述专业业务组中空闲的工作节点中,节点优先级最低的工作节点,且该工作节点的节点优先级低于或等于所述任务的业务优先级,并以该工作节点执行所述任务。由于总是选择各专业业务组中空闲工作节点中,节点优先级最低的工作节点来执行任务。所以,在保证系统正常运行的前提下,尽可能的保证系统中存在有空闲的较高节点优先级的工作节点,而较高节点优先级的工作节点能用来执行具有较高业务优先级的任务,进而一定程度上保证具有较高业务优先级的任务可以被及时执行。
进一步地,所述从通用业务组中选择空闲的工作节点执行所述任务,包括:
从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务。
在专业业务组中没有空闲的工作节点的情况下,也可从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务。在通用业务组中,任务不能被节点优先级高于所述业务优先级的工作节点来执行,分配工作节点时总是优先分配较低节点优先级的工作节点。这样就会在保证系统正常运行的前提下,尽可能的保证系统中存在有空闲的较高节点优先级的工作节点,而较高节点优先级的工作节点能用来执行具有较高业务优先级的任务,进而一定程度上保证具有较高业务优先级的任务可以被及时执行。
进一步地,所述从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,包括:
确定所述通用业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N;
若存在,选择所述通用业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级。
本发明为待执行任务分配节点的时候,从通用业务组中,先选择空闲的节点优先级最低的工作节点,即选择空闲的节点优先级为PN的工作节点。如果存在空闲的节点优先级为PN的工作节点,则以该空闲的工作节点执行所述任务。如果不存在空闲的节点优先级为PN的工作节点,则选择空闲的节点优先级次低的工作节点,即选择空闲的优先级为PN-1的工作节点。以此类推,直到选择到空闲的工作节点,执行所述任务。其中,执行所述任务的空闲的工作节点的节点优先级要低于或等于所述任务的业务优先级。
上述方法提出了一种优先级兼容的节点分配方法。任务可由通用业务组中的节点优先级低于或等于所述任务的业务优先级的工作节点来执行,且分配节点的时候,优先选择节点优先级较低的工作节点。在既存在空闲的较低优先级的工作节点,又存在空闲的较高优先级的工作节点的情况下,无论具有较低业务优先级的任务,还是具有较高业务优先级的任务,都会选择空闲的较低优先级的工作节点来执行。从而在保证系统正常运行的前提下,尽可能的保证系统中存在有空闲的较高节点优先级的工作节点,而较高节点优先级的工作节点能用来执行具有较高业务优先级的任务,进而一定程度上保证具有较高业务优先级的任务可以被及时执行。
进一步地,所述从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,还包括:
若不存在,选择所述通用业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N,PX-1低于或等于所述业务优先级。
在为待执行任务分配节点的时候,在通用业务组中,如果不存在空闲的节点优先级为PX的工作节点。则在通用业务组中,继续选择空闲的节点优先级为PX-1的工作节点,即选择空闲的且节点优先级比PX高一级的PX-1的工作节点。选择空闲节点时,通过逐步提高节点优先级级别,从而尽可能选择具有较低节点优先级的工作节点,以执行所述任务。
上述技术方案,选择了通用业务组中空闲的工作节点中,节点优先级最低的工作节点,且该工作节点的节点优先级低于或等于所述任务的业务优先级,并以该工作节点执行所述任务。由于总是选择通用业务组中空闲工作节点中,节点优先级最低的工作节点来执行任务。所以,在保证系统正常运行的前提下,尽可能的保证通用业务组中存在有空闲的较高节点优先级的工作节点,而较高节点优先级的工作节点能用来执行具有较高业务优先级的任务,进而一定程度上保证具有较高业务优先级的任务可以被及时执行。
进一步地,所述方法还包括:
在所述专业业务组和通用业务组中能够执行第一业务优先级和第二业务优先级的空闲工作节点不能够同时执行第一业务优先级的任务和所述第二业务优先级的任务时,优先执行所述第一业务优先级的任务,其中,所述第一业务优先级高于所述第二业务优先级。
系统中同时发布一个业务优先级为P1的第一任务和一个业务优先级为P2的第二任务,其中,P1的业务优先级级别高于P2的业务优先级级别。此时,系统中的专业业务组和通用业务组中仅存在1个节点优先级为P3的空闲节点。由于进行节点选择时,选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行任务。因此,空闲的节点优先级为P3的工作节点既可以用来执行第一任务,也可以用来执行第二任务。但由于第一任务的业务优先级高于第二任务的业务优先级。所以,系统会调度上述空闲的工作节点来执行第一任务,第二任务需要继续请求空闲工作节点。
上述方案,在系统的工作节点资源不足以执行所有任务的情况下,根据任务的业务优先级,确定任务的执行顺序。实际运行环境中,各个任务的紧急程度和重要程度往往是不一样的。可以根据系统中任务的紧急程度和重要程度来配置该任务的业务优先级。可分配紧急程度较高或重要程度较高的任务较高业务优先级,可分配紧急程度较低或重要程度较低的任务较低业务优先级。在从所述专业业务组中选择空闲的工作节点执行所述任务时,考虑业务优先级,可以使任务调度方案更加符合用户的实际需求,并使任务调用更加有序化。
进一步地,所述方法还包括:
若所述专业业务组和所述通用业务组中都不存在空闲的且节点优先级低于或等于所述业务优先级的工作节点,则等待节点优先级低于或等于所述业务优先级的工作节点空闲后执行所述任务。
在所述专业业务组和所述通用业务组中都不存在空闲的且节点优先级低于或等于所述业务优先级的工作节点的情况下,可以以设定的时间间隔,反复查询确定是否有空闲的工作节点,所述空闲的工作节点为所述专业业务组和/或所述通用业务组中节点优先级低于或等于所述业务优先级的工作节点。
如果在设定的时间段内,所述任务都没有请求到空闲的节点,可向监控中心发起超时报警,以提示用户及时处理。
图2为本发明实施例提供的一种任务调度装置示意图,包括:
第一确定单元201,用于根据任务的属性,确定执行所述任务的专业业务组;
第一选择单元202,用于从所述专业业务组中选择空闲的工作节点执行所述任务;
第二选择单元203,用于若所述专业业务组中无空闲的工作节点,从通用业务组中选择空闲的工作节点执行所述任务。
进一步地,所述装置还包括:
第二确定单元204,用于根据所述任务的属性,确定所述任务的业务优先级;
第一选择单元202,用于根据所述业务优先级,从所述专业业务组中选择空闲的工作节点执行所述任务。
进一步地,所述第一选择单元202,用于在所述专业业务组中,优先选择空闲的且能够执行所述任务的节点优先级较低的工作节点执行所述任务;
所述第二选择单元203,用于若所述专业业务组中无空闲的工作节点,在所述通用业务组中优先选择空闲的且能够执行所述任务的节点优先级较低的工作节点执行所述任务。
进一步地,第一选择单元202,用于从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务。
进一步地,第一选择单元202,用于确定所述专业业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N;
若存在,选择所述专业业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级。
进一步地,第一选择单元202,还用于:
所述从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,还包括:
若不存在,选择所述专业业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N,PX-1低于或等于所述业务优先级。
进一步地,第二选择单元203,用于从所述通用业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务。
进一步地,第二选择单元203,用于确定所述通用业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N;
若存在,选择所述通用业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级。
进一步地,第二选择单元203,还用于:
若不存在,选择所述通用业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X≤N,PX-1低于或等于所述业务优先级。
进一步地,所述装置还包括:
执行单元205,用于在所述专业业务组和通用业务组中能够执行第一业务优先级和第二业务优先级的空闲工作节点不能够同时执行第一业务优先级的任务和所述第二业务优先级的任务时,优先执行所述第一业务优先级的任务,其中,所述第一业务优先级高于所述第二业务优先级。
进一步地,所述装置还包括:
等待单元206,用于若所述专业业务组和所述通用业务组中都不存在空闲的且节点优先级低于或等于所述业务优先级的工作节点,则等待节点优先级低于或等于所述业务优先级的工作节点空闲后执行所述任务。
图3为本发明实施例提供的一种网元结构示意图,包括:
收发器301、存储器302及处理器303;
所述存储器302,用于存储计算机可执行指令,所述可执行指令能够实现上述的新闻分类方法;
所述处理器303,分别与收发器301及存储器302连接,用于控制所述收发器301及所述存储器302,执行所述计算机可执行指令。
本发明还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现上述的任务调度方法。所述计算机存储介质可为非瞬间存储介质。
本发明实施例还提供了一种具体的爬虫任务调度方案,即将上述任务调度方法应用于具体的爬虫系统中。本爬虫任务调度方案目的为:解决大规模数据采集业务需求下,由于爬虫工作节点的物理资源有限,造成了重要业务的部分数据发生的漏采和延时问题。
本爬虫任务调度方案的解决思路如下:本申请提出了一种分布式爬虫任务调度装置,对业务种类和优先级进行抽象,形成多通道的调度逻辑,不仅做到了调度过程的公平有序,并从业务角度出发,对爬虫节点进行资源预分配,通过一定程度的资源隔离造成局部冗余,从而保障了重点任务的低延时采集需求,同时具备负载平衡的动态特性,尽可能满足总体任务的采集总量,在低延时和吞吐量之间达成了平衡,并在实际生产环境下,有着简单部署、实施和监控的优点。
本方案不仅考虑到了任务优先级,还考虑到了业务分组;不仅考虑到了调度过程,还考虑到了工作资源;不仅考虑到了公平有序,还考虑到了局部冗余;因此相比现有爬虫调度方案,在实际生产环境下能够更好的工作。
为了实现上述技术方案,本系统由以下模块组成:任务生成模块(producer)、调度中心模块(dispatcher)、执行节点模块(worker)、监控节点模块(monitor)、数据入库模块(gather)、资源分配模块(resourcer)、代码分发模块(repor)、日志入库模块(logger)。
图4为本发明实施例提供的一种任务调度爬虫系统的总体架构图。多个业务客户端将数据采集业务需求发送给中央调度服务器,中央调度服务器将当期负载情况返回给多个业务客户端;中央调度服务器分别将资源占用情况和任务队列情况、日志入库、采集几个入库存档传递给监控中心、日志数据库及结果数据库;各爬虫节点集群分组在资源分配中心的管理下,执行消息队列中的派发任务,并将执行情况上报给中央调度服务器。
图5为本发明实施例提供的一种任务调度爬虫系统的总体流程图,包括以下步骤:业务需求产生;询问当前空闲资源;发起任务;调度中心由任务队列取出,分配工作节点;调度中心返回当前资源情况和任务情况给监控中心;工作节点由任务队列取出;工作节点向代码中心申请配套代码;工作节点向资源中心申请配套资源;工作节点发起数据请求;工作节点对响应内容进行解析;工作节点将解析内容放入结果消息队列;工作节点将处理情况放入日志消息队列;日志模块从消息队列取出数据,存入日志数据库;异常日志提交监控中心;数据模块从消息队列取出数据,经过格式转换和情绪,存入数据库。
图6为本发明实施例提供的一种任务调度爬虫系统中的任务生成模块的流程示意图。
任务生成模块中可定义任务格式数据包,包括:爬虫代码的包名称、脚本执行环境的环境变量、脚本执行器的执行路径等。数据包中还可以包括以下内容:
执行对象,例如在python语言环境中,为包、模块、函数的组合体;
负载内容,包括业务采集的目标网站地址、类目名称等;
采集对象,例如新闻题目、新闻内容、发布人、发布时间等业务内容;
数据保存格式,例如数据库的数据表和字段;
所需资源,例如登陆使用的缓存(cookie)、代理等;
执行方式,包括后台直接请求、需要JS解析的容器、前台模拟动作;
最大容忍的执行时间<timeout_execute>,防止由于页面假死等原因造成的过长操作;
数据解析规则,指从网页响应中解析出目标数据的特定规则。
任务生成模块中可定义业务分组和优先级。例如业务分组group=“模版爬虫”,优先级priority=“低”;或者针对某一特殊网站,业务分组group=“模版爬虫”,优先级priority=“高”;本动作应由运维人员根据业务方需求预先配置。
任务生成模块中可定义批次。由业务需求确定当前任务是单批次还是周期性多批次,将每批次任务数量记为M。
询问空闲资源步骤如下:任务生成模块中可向调度中心模块询问空闲资源。任务生成模块通过套接字请求的方式,向调度中心模块询问该业务组和优先级的当前空闲节点数,调度中心返回数量为N;如N大于0,则向调度中心所指定的任务队列发出n个任务,n为N和M的最小值,同时M减n;实际情况下,因为避免工作节点等待任务的间隙,任务生成模块发出的任务数n,一般可以大于min(N,M),比如min(N,M)+1;发出任务是发出到统一的任务队列(queue_public)中。
如当前批次剩余任务M为0,则结束当前批次发起动作。
如当前批次剩余任务M大于0,则以一定时间间隔,通常是1秒,反复请求调度中心,询问当前空闲资源,重复上述询问空闲资源的操作,直到当前批次任务发完;如周期性多批次任务,则检测当前时间是否达到下一周期时间点,如未到达则等待后,重复上述询问空闲资源步骤操作;如果由于资源占用高发生了延时,即当前时间点已经超过了下一批次时间点,则立即发起上述询问空闲资源步骤操作,同时通过套接字方式向监控中心发起超时警告。
图7为本发明实施例提供的一种任务调度爬虫系统中的任爬虫工作节点的流程示意图。
在物理服务器上发起调用命令,具体格式为:run worker<group><priority><max-process><max-thread>,例如:run worker weibo low 10 20。该命令,将发起制定业务分组<group>和指定优先级<priority>的爬虫工作程序,该程序将自动发起并发数为<max-process>*<max-thread>个子工作程序,其中,<max-process>为最大工作进程数,<max-thread>为最大工作线程数,例如<max-process>=10,<max-thread>=20,则该程序将具备200个并发请求和处理能力,每一个任务处理程序都被称为executor;该命令中的<max-process>和<max-thread>参数是根据业务方需求预先配置。
爬虫工作程序为工作节点的主进程,负责以下功能:按照调用参数,发起<max-process>*<max-thread>个子工作程序任务处理程序;向中心调用服务器dispatcher进行注册,告知业务分组<group>和指定优先级<priority>具备<max-process>*<max-thread>个任务执行能力;以一定间隔向dispatcher发送心跳包,证明其在正确运行;向调度中心模块请求任务(job),并分发给任务处理程序。
对于每一个任务,解析其执行参数中的最大执行时间<timeout_execute>,并在任务处理程序开始运行时进行计时,并开启独立线程进行监控,一旦任务处理程序执行时间超时,则负责强制结束任务处理程序。
对于每一个任务,解析其代码包名称和版本包,并检查当前环境下是否具备,如没有,则向代码分发节点请求该代码包,并下载解压缩到指定目录,由于涉及到多个并行程序同一时间重复请求的问题,则需加载文件锁,同一时间只由一个程序发起代码请求,其他程序等待代码同步完成;同时为了防止程序错误造成死锁,需要设定文件锁的有限期,超时则自动解锁。
对于任务处理程序结束后的处理结果,由消息队列,发送给数据入库模块进行持久化;对于每一个任务的开始执行和结束执行情况,都上报给调度中心模块。任务处理程序为爬虫程序的实际执行程序。由爬虫工作程序分发任务负载;按照业务负载,如需额外资源,向资源分发中心申请指定资源,例如不同级别的代理、已登陆账号的cookie等;按照业务负载,向互联网发起请求;对响应内容按照业务负载中的解析规则并解析,将解析结果返回给任务工作程序;如请求错误或者解析错误,也将错误码(err_code)和错误信息(err_info)返回给爬虫工作程序。
图8为本发明实施例提供的一种任务调度爬虫系统中的调度中心模块的流程示意图。
调度中心模块总体上有以下功能:响应爬虫工作程序的注册请求、心跳请求和任务执行情况上报请求;计算当前资源占用情况;响应任务生成模块的请求,返回当前资源占用情况;取出任务队列(queue_public)中的任务,通过动态分配算法,分发到不同爬虫工作程序对应的任务队列(queue_worker)中;响应监控中心的查询请求,返回当前资源占用情况;负责从代码中心查询当前任务的最新版本号,一并返回给爬虫工作程序。
其中资源占用计算装置和动态分配算法,两者的处理原理相同,两种算法是本方案的核心算法,且具备两条原则:
业务隔离原则,不同业务组的工作节点相互隔离,只可以接受本业务任务,只有通用业务工作组是特例,可以接受所有业务组任务。任务执行顺序为:业务优先由当前业务组工作节点执行,只有当前业务工作节点都满的情况下,才可以由通用业务组执行。
优先级向上兼容原则,低优先级的分组资源,可以并且优先执行比它优先级高的任务,反之则不行。
举例说明这两点原则:weibo业务组的工作节点只能接受weibo业务的任务,不能接受其他业务如taobao业务组的任务;只有通用业务组的工作节点,可以接受所有业务的任务。也就说是,weibo业务的任务,优先由weibo业务组的工作节点执行,当weibo业务组的工作节点都忙的情况下,才由通用业务组的工作节点来执行。同一业务组中就,低节点优先级的工作节点,按照业务优先级的高、中、低优先级的顺序执行任务;中节点优先级的工作节点,按照执行高、中优先级的顺序执行任务;高优先级的工作节点,只能执行高业务优先级任务。
本发明的空闲资源计算算法是这样实现的:例如,一个爬虫工作程序发起注册请求,参数分别为:<group>=weibo,<priority>=low,<max-process>=10,<max-thread>=20。上述参数代表微博业务类爬虫,并且优先级为低的分组中分配有10*20=200个工作节点,记为<weibo-low>这个分组的资源数NH=200;另一个爬虫工作程序发起注册请求,参数分别为:<group>=weibo,<priority>=middle,<max-process>=5,<max-thread>=10,上述参数代表微博业务类爬虫,并且优先级为中的分组中分配有5*10=50个工作节点,记为<weibo-middle>这个分组的资源数NM=50;另一个爬虫工作程序发起注册请求,参数分别为:<group>=weibo,<priority>=high,<max-process>=2,<max-thread>=5,上述参数代表微博业务类爬虫,并且优先级为高的分组中分配有2*5=10个工作节点,记为<weibo-high>这个分组的资源数NH=10;那么,微博业务组的总资源数为NA=NL+NM+NH=200+50+10=260个。
如果微博业务组的低优先级任务来请求空闲资源的话,系统返回NL=200个;如果,微博业务组的中优先级任务来请求空闲资源的话,系统返回NL+NM=250个;如果微博业务组的高优先级任务来请求空闲资源的话,系统返回NL+NM+NH=260个。
注意,计算空闲资源的时候,是不考虑通用业务组中存在的空闲工作节点,因为通用业务组的设计初衷是:当整个系统超负荷时用来一定程度的托底的,业务发出的任务过多时才由通用业务组负责执行。
每当调度中心模块从任务队列中接收到任务,就按照上述原则进行分配到不同的任务队列中,其由不同的业务组中空闲的工作节点负责接收,并且当前空闲资源数-1。
调度中心模块派发任务的算法,跟上述的空闲资源计算算法类似。图9为本发明实施例提供的一种空闲资源计算算法的流程示意图。
业务A的任务的派发顺序为A业务工作节点分组和通用业务工作节点分组,在每一分组里,按照优先级为低-中-高的顺序,派发到业务A对应的业务分组中。
按照图9中的工作节点分组情况,计算可派发的工作节点数为:任务(业务-A、优先级-高)的可派发工作节点数为(N1+N2+N3+N4+N5+N6),即可用节点数最大化;任务(业务-A、优先级-中)的可派发工作节点数为(N1+N2+N4+N5),也就是,N3和N6的工作节点数,是没有资格派发的,即形成了工作节点资源的局部冗余,只为高优先级任务保留;任务(业务-A、优先级-低)的可派发工作节点数为(N1+N4),也就是,N1、N3、N5和N6的工作节点数,是没有资格派发的。
监控节点模块,负责监控调度中心模块中各个任务队列的实际负载情况;对某个异常任务队列,如等待分发任务数过大的情况,发出告警;监控调度中心模块中各个爬虫工作节点分组集群的工作状态;对日志入库模块中监测得到的异常延时任务,进行告警;提供图形化一站式前台服务,方便运维人员对某一业务分组和优先级的任务分发速度,和与之匹配的爬虫工作节点分组集群的负载情况,进行监控。
数据入库模块,负责保存的各类数据;由消息队列获取爬虫模块解析后的待保存数据;根据指定的表名称和字段映射关系,将数据保存入数据库;根据数据库负载情况,开启多个进程同时进行上述操作,提高入库速度。
资源分配模块,负责保存爬虫模块所需的各类资源,包括代理和缓存;负责爬取互联网上的公开代理,并以一定时间间隔反复测试其有效性,将有效代理ip(InternetProtocol Address,网际协议地址)和端口放入代理池(proxy_pool);负责测试接其他渠道获得的高质量代理后放入代理池;负责对指定网站进行指定用户名和密码的登陆动作,并以一定时间间隔反复刷新页面,将其cookie放入cookie池(cookie_pool);接受爬虫工作程序响应,获得代理或cookie资源。
代码分发模块,负责保存由开发人员完成的指定业务分组<group>的爬虫程序,并对每次提交自动生成一个版本号;接受调度中心模块请求,某一个业务分组的最新版本号;接受爬虫工作程序请求,同步某一个业务分组和版本号的代码,进行下发。
日志入库模块,负责搜集一个任务的全生命周期的日志,入库到文件中;同时,为了后续业务人员更加快速和便捷的跟踪任务的延时性,日志入库模块会根据任务的完成情况,将异常任务和超时任务入库到数据库中。
从任务生成模块的日志解析出一个新的任务,并根据任务的id(identification,标识),在内存中缓存该任务的生成时间(generated_timestamp);从调度中心模块的日志解析出一个任务开始派发的时间(dispatched_timestamp),并缓存;从爬虫工作程序的日志解析出一个任务的开始执行时间(accepted_timestamp)或者执行完成时间(executed_timestamp),并缓存上述时间;独立线程一直在检查缓存中的任务,如发现任务开始派发的时间、任务的开始执行时间、执行完成时间任何一个时间戳在指定的时间间隔内没有到达日志入库模块,则说明该任务发生了延时;将延时任务进行入库处理。
图10为本发明实施例提供的一种任务调度爬虫系统的部署流程示意图,具体步骤如下:
提出数据采集需求,包括采集目标、采集频次和延时容忍度;第二步:开发人员根据业务需求,开发目标数据的数据采集爬虫程序,测试无误后上传到中央调度服务器的代码库。
根据需求评估采集工作总体工作量,包括单次采集时间和单位时间内的采集总次数,计算所需要的爬虫节点数和并发进程数,同时根据延时容忍度,估算其中的高、中、低优先级的分配比例。
在爬虫节点服务器上通过简单的部署命令,即可开启上述的爬虫节点集群分组;开启该业务的任务发起程序,程序会自动和中央调度服务器进行数据交换,发起数据采集需求;中央服务器一旦获取到采集任务,就以非常小的间隔,通常是1毫秒不断计算当前集群中该业务需求可以用到的空闲资源;任务发起程序一旦获知中央服务器具备空闲资源,则发起任务。
本发明实施例提供的一种分布式爬虫任务调度方案,以业务优先级和延时容忍度为优化目标而设计,采用主流的主从分布的技术架构,其特征在于,以业务名称和优先级的多种组合,对爬虫工作节点资源进行预分配,形成多个集群分组,通过中央调度服务器,将业务任务分配到这些工作节点。此方案尤其适用于数据业务种类繁多、需求数量巨大,而爬虫工作节点客观资源有限的实际工作情况。方案的本质在于,对于物理资源按照业务进行一定程度的区隔,为高优先级低延时任务提供了一定程度的资源冗余,从而充分保障了高优先级任务的低延时,同时尽可能的提高低优先级任务的采集总量。
本发明实施例提供的中央调度服务器的调度算法,并不是简单的一一对应,而是具备一定的动态扩展特性,主要有两个算法:优先级向上兼容,业务分组隔离。具体来说:(1)优先级向上兼容,指的是某优先级任务可以由同等优先级或者更小优先级的工作节点来获取,比如高优先级任务,可以由高/中/低优先级工作节点获取;中优先级任务,可以由中/低优先级工作节点获取;低优先级任务,可以由低优先级工作节点获取;(2)业务分组隔离,即某业务任务只能由该业务或者通用业务工作节点集群分组获取,不可由其他业务工作节点集群分组获取。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种任务调度方法,其特征在于,所述方法包括:
根据任务的属性,确定执行所述任务的专业业务组;
根据所述任务的属性,确定所述任务的业务优先级;
根据所述业务优先级,从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务;
若所述专业业务组中无空闲的工作节点,确定通用业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X N
若存在,选择所述通用业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级;
若不存在,选择所述通用业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,PX-1低于或等于所述业务优先级;
其中,所述从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务,包括:
确定所述专业业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X N;
若存在,选择所述专业业务组中节点优先级为PX的空闲的工作节点执行所述任务,其中,PX低于或等于所述业务优先级;
若不存在,选择所述专业业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,PX-1低于或等于所述业务优先级。
2.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
在所述专业业务组和通用业务组中能够执行第一业务优先级和第二业务优先级的空闲工作节点不能够同时执行第一业务优先级的任务和所述第二业务优先级的任务时,优先执行所述第一业务优先级的任务,其中,所述第一业务优先级高于所述第二业务优先级。
3.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
若所述专业业务组和所述通用业务组中都不存在空闲的且节点优先级低于或等于所述业务优先级的工作节点,则等待节点优先级低于或等于所述业务优先级的工作节点空闲后执行所述任务。
4.一种任务调度装置,其特征在于,所述装置包括:
第一确定单元,用于根据任务的属性,确定执行所述任务的专业业务组;
第二确定单元,用于根据所述任务的属性,确定所述任务的业务优先级;
第一选择单元,用于根据所述业务优先级,从所述专业业务组中选择空闲的且节点优先级低于或等于所述业务优先级的工作节点,执行所述任务;
第二选择单元,用于若所述专业业务组中无空闲的工作节点,确定通用业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X N;
若存在,选择所述通用业务组中节点优先级为PX的空闲的工作节点,执行所述任务,其中,PX低于或等于所述业务优先级;
若不存在,选择所述通用业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,PX-1低于或等于所述业务优先级;
其中,所述第一选择单元,具体用于:
确定所述专业业务组中是否存在节点优先级为PX的空闲的工作节点,其中,节点优先级包括P1至PN;节点优先级PX-1高于节点优先级PX,N>1,1<X N;
若存在,选择所述专业业务组中节点优先级为PX的空闲的工作节点执行所述任务,其中,PX低于或等于所述业务优先级;
若不存在,选择所述专业业务组中节点优先级为PX-1的空闲的工作节点执行所述任务,其中,PX-1低于或等于所述业务优先级。
5.根据权利要求4所述的装置,其特征在于,
所述装置还包括:
执行单元,用于在所述专业业务组和通用业务组中能够执行第一业务优先级和第二业务优先级的空闲工作节点不能够同时执行第一业务优先级的任务和所述第二业务优先级的任务时,优先执行所述第一业务优先级的任务,其中,所述第一业务优先级高于所述第二业务优先级。
6.根据权利要求4所述的装置,其特征在于,
所述装置还包括:
等待单元,用于若所述专业业务组和所述通用业务组中都不存在空闲的且节点优先级低于或等于所述业务优先级的工作节点,则等待节点优先级低于或等于所述业务优先级的工作节点空闲后执行所述任务。
7.一种网元,其特征在于,所述网元包括:
收发器、存储器及处理器;
所述存储器,用于存储计算机可执行指令,所述可执行指令能够实现权利要求1至3任一项提供的方法;
所述处理器,分别与收发器及存储器连接,用于控制所述收发器及所述存储器,执行所述计算机可执行指令。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现权利要求1至3任一项提供的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910377359.3A CN111913784B (zh) | 2019-05-07 | 2019-05-07 | 任务调度方法及装置、网元、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910377359.3A CN111913784B (zh) | 2019-05-07 | 2019-05-07 | 任务调度方法及装置、网元、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913784A CN111913784A (zh) | 2020-11-10 |
CN111913784B true CN111913784B (zh) | 2024-01-26 |
Family
ID=73241874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910377359.3A Active CN111913784B (zh) | 2019-05-07 | 2019-05-07 | 任务调度方法及装置、网元、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913784B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685184A (zh) * | 2020-12-31 | 2021-04-20 | 广州极飞科技有限公司 | 分布式任务调度的方法、任务调度平台及任务执行器 |
CN113672347A (zh) * | 2021-08-09 | 2021-11-19 | 新华三大数据技术有限公司 | 一种容器组调度方法及装置 |
CN117112188A (zh) * | 2022-05-16 | 2023-11-24 | 百度时代网络技术(北京)有限公司 | 多任务管理方法、装置及计算机程序产品 |
CN115412510B (zh) * | 2022-10-31 | 2023-01-17 | 成都中科合迅科技有限公司 | 基于分布式框架业务灵活配置方法 |
CN116647530A (zh) * | 2023-06-06 | 2023-08-25 | 深圳花儿绽放网络科技股份有限公司 | 一种即时通信消息任务的自动执行系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236580A (zh) * | 2010-04-26 | 2011-11-09 | 阿里巴巴集团控股有限公司 | 为etl任务分配节点的方法和调度系统 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
-
2019
- 2019-05-07 CN CN201910377359.3A patent/CN111913784B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236580A (zh) * | 2010-04-26 | 2011-11-09 | 阿里巴巴集团控股有限公司 | 为etl任务分配节点的方法和调度系统 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111913784A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913784B (zh) | 任务调度方法及装置、网元、存储介质 | |
CN111752965B (zh) | 一种基于微服务的实时数据库数据交互方法和系统 | |
US6732139B1 (en) | Method to distribute programs using remote java objects | |
CN112162865A (zh) | 服务器的调度方法、装置和服务器 | |
US8639792B2 (en) | Job processing system, method and program | |
US11838384B2 (en) | Intelligent scheduling apparatus and method | |
US8024744B2 (en) | Method and system for off-loading user queries to a task manager | |
CN109995669B (zh) | 分布式限流方法、装置、设备及可读存储介质 | |
US11431827B2 (en) | Data center management system | |
CN104077212A (zh) | 压力测试系统及方法 | |
US20230342191A1 (en) | Task Scheduling Method and System | |
CN113691611B (zh) | 一种区块链的分布式高并发事务处理方法及系统、设备、存储介质 | |
CN110581893B (zh) | 数据传输方法、装置、路由设备、服务器及存储介质 | |
CN113742109B (zh) | 第三方服务对接方法、装置、设备及存储介质 | |
CN106533961B (zh) | 一种流量控制方法及装置 | |
US11816511B1 (en) | Virtual partitioning of a shared message bus | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN111258760A (zh) | 一种平台管理方法、系统、装置及存储介质 | |
CN112307046A (zh) | 数据采集方法和装置、计算机可读存储介质、电子设备 | |
CN111488373A (zh) | 用于处理请求的方法和系统 | |
CN111738721A (zh) | 一种区块链交易监听方法以及相关装置 | |
CN111294383B (zh) | 物联网服务管理系统 | |
CN114610765A (zh) | 流计算方法、装置、设备及存储介质 | |
Long et al. | An improved topology schedule algorithm for storm system | |
CN117407143B (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 |