CN115599519A - 一种作业调度方法及装置 - Google Patents
一种作业调度方法及装置 Download PDFInfo
- Publication number
- CN115599519A CN115599519A CN202211284903.8A CN202211284903A CN115599519A CN 115599519 A CN115599519 A CN 115599519A CN 202211284903 A CN202211284903 A CN 202211284903A CN 115599519 A CN115599519 A CN 115599519A
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- job
- executor
- work
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 9
- 239000003795 chemical substances by application Substances 0.000 description 61
- 238000001514 detection method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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是本发明实施例提供的作业调度装置的构成框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
下面对结合附图对本发明实施例的技术方案进行详细说明。本发明的实施例中,提供了一种作业(Job)调度方法,本发明实施例的方法支持定时器任务和优先队列任务,通过对作业(Job)进行分类,某一类的作业(Job)关联到不同的工作组(WorkerGroup)、每个工作组(WorkerGroup)管理多个工作代理器(Worker Proxy),每个工作代理器(WorkerProxy)表示任务的一种处理方式,工作代理器(WorkerProxy)管理着同一外部服务(Worker)的集群,工作代理器(WorkerProxy)根据指定的节点选择策略(随机、轮询、权重、负载状态)从外部工作服务集群(WorkerCluster)中选择某一外部服务(Worker)节点执行具体的任务。不同工作组(WorkerGroup)之间使用不同的任务队列、组与组之间相互隔离、单独管理。本发明实施例提供的调度方法本身不执行具体任务,通过调度服务交给外部(服务或插件)的外部服务(Worker)来执行。图1中示出了该作业(Job)调度方法的流程图,所述方法包括如下步骤:
S102、根据任务请求创建待执行作业(Job)并指定该待执行作业(Job)的参数,所述参数包括触发类型(包括定时任务和队列任务)、执行器(TaskExecutor)类型以及任务结果推送方式,还可以包括工作组(WorkerGroup)、作业输入参数、重试次数、重试间隔、超时时间、以及工作代理器匹配参数等。
S104、根据待执行作业(Job)的触发类型和执行器(TaskExecutor)类型,为该待执行作业(Job)创建待执行任务并分配任务执行器(TaskExecutor):若触发类型为定时任务,则当定时时间到达时创建任务,若触发类型为队列任务,则当收到队列消息时创建任务。本发明实施例涉及的技术方案中,作业(Job)通常由业务系统提交至执行该调度方法的调度系统,调度系统根所提交的作业(Job)创建任务(task),作业(Job)每次执行会产生一个任务(task),任务(task)的执行是通过任务执行器(TaskExecutor)选择指定的执行策略(例如串行、并行等),并根据工作组(WorkerGroup)选择多个工作代理器(WorkerProxy),通过工作代理器(WorkerProxy)最终调到下游的外部服务(Worker)。任务(task)会继承作业(Job)的参数,作业(Job)的参数最终会传给下游外部服务(Worker),作为外部服务(Worker)执行具体任务的参数。上述各参数中,重试次数表示为任务执行失败时可重试多少次;重试间隔:即重试等待时间表示任务失败重试时的间隔时间;超时表示任务执行的超时时间,到达超时时间后,停止任务执行。具体可以通过如下步骤进行:
S1041、根据待执行作业(Job)的触发类型,将该待执行作业(Job)分配至优先任务队列或者定时任务队列。该步骤中,通过调用作业分发器(JobDispatcher)根据作业(Job)的触发类型进行作业(Job)分发,如果该作业(Job)是队列任务则加入到优先任务队列等待执行;如果该作业(Job)是定时触发任务,则加入定时(例如cron定时器)任务队列中。cron定时器主要负责定时任务的执行,定时任务可以分为系统级定时任务和用户级定时任务。系统级定时任务随系统运行时添加,可以通过调用任务监控器(Taskmon)扫描并处理已经运行并超时的任务。
S1042、根据优先任务队列发出的任务信息或者定时任务队列发出的定时触发信息,创建该待执行作业(Job)的待执行任务(Task)。该步骤开始,可以通过调用任务追踪器(TaskTracker)来实现任务的执行调度和分配。任务追踪器(TaskTracker)可以根据作业(Job)创建具体的任务(Task),并根据执行器类型(例如串行、并行等)选择指定的执行器(TaskExecutor)执行任务、以及监控任务的执行,任务执行结果通知等。
S1043、根据该待执行任务的执行器(TaskExecutor)类型指定对应的任务执行器(TaskExecutor)。任务执行器(TaskExecutor)可以分为串行执行器、并行执行器等,用于实现任务(Task)编排、执行状态检查(是否完成、是否需要调用下一个工作代理器(WorkerProxy)执行任务等)。
S106、在任务执行器(TaskExecutor)中,通过待执行作业的工作组(WorkerGroup)参数,选择指定的工作组(WorkerGroup);在工作组(WorkerGroup)中,通过工作过滤器(WorkerFilter)根据工作代理器(WorkerProxy)匹配参数和工作代理器(WorkerProxy)的开关状态为该待执行任务选择多个工作代理器(WorkerProxy)以通过外部服务(Worker)执行该待执行任务。由于每个任务可能需要由多个外部服务(Worker)执行,通过把每个外部服务(Worker)划分到同一组,根据组的ID(即创建作业(Job)时,指定的工作组参数)进行划分。其中,待执行作业的工作组参数指的是创建作业(Job)时的参数,即指作业(Job)中的工作组(WorkerGroup)参数,步骤S102中涉及的的参数中的一个。工作过滤器(WorkerFilter)根据步骤S102中的参数“工作代理器匹配参数”与工作组(WorkerGroup)下的工作代理器(WorkerProxy)中的匹配规则进行匹配,即每一个工作代理器(WorkerProxy)都有一个匹配规则。工作代理器(WorkerProxy)的开关状态只有开和关两个状态,只有工作代理器(WorkerProxy)的开关状态为开、并且匹配上相应规则的工作代理器(WorkerProxy)才会执行具体的任务,工作代理器(WorkerProxy)的开关状态存在数据库中,并可通过接口更改。具体可以包括如下步骤:
S1061、通过待执行作业的工作组参数,为该待执行任务选择指定的工作组(WorkerGroup),所述工作组(WorkerGroup)包括与相应的待执行作业的工作组参数相关的多个工作代理器Worker Proxy)。其中,工作代理器(WorkerProxy)可以进行外部工作服务集群(WorkerCluster)的状态维护、按指定的节点选择策略(例如随机、轮询、权重、负载状态等)选择外部服务(Worker)节点执行具体的任务,并根据重试策略在外部服务(Worker)节点调用失败后进行重试。其中,节点对应外部工作服务集群(WorkerCluster)中的一个外部服务(Worker)。工作代理器(WorkerProxy)内部的资源管理器(ResourceManager)维护一个可用的外部服务(Worker)列表,且外部服务(Worker)每隔一段时间会上报外部服务(Worker)的负载状态。如节点选择策略为“随机”,则随机从该外部服务(Worker)列表中选择一个,如选择策略为“权重”,则根据外部服务(Worker)的权重值来进行选择。
还可以采用工作组管理器(WorkerGroupManager)来对工作组(WorkerGroup)进行管理,而工作组(WorkerGroup)用于维护与某一类作业(Job)相关的工作代理器(WorkerProxy)。
S1062、在该指定的工作组中(WorkerGroup),根据待执行作业的工作组参数、工作过滤器(WorkerFilter)和工作代理器的开关状态为该待执行任务选择多个工作代理器以执行该待执行任务。其中,工作过滤器(WorkerFilter)用于选择匹配的工作代理器(WorkerProxy)。
S1063、每个工作代理器(Worker Proxy)根据节点选择策略,从外部工作服务集群(WorkerCluster)中选择一个外部服务(Worker)来执行该待执行任务。外部服务在执行任务时,可以以同步方式或者异步方式执行该待执行任务,其中,若以同步方式执行该待执行任务,则在外部服务(Worker)执行完成后通过响应(返回值)将执行结果返回;若以异步方式执行该待执行任务,则在调用外部服务(Worker)后不等外部服务(Worker)执行完成而立即返回(此时不返回结果),待外部服务(Worker)执行完毕后,通过回调或者消息通知方式将执行结果返回。
S108、接收返回的任务执行结果。
本发明实施例提供的方法,还包括:根据返回的任务执行结果,通过任务执行器判断该待执行任务是否全部执行完成:若所述任务执行器为串行执行器,则判断是否继续调用下一个工作代理器来执行任务,并根据任务结果推送方式判断是否推送任务结果;若所述任务执行器为并行执行器,则根据任务结果推送方式判断是否推送任务结果。其中,针对串行执行器和并行执行器,任务结果推送方式包括:任意一个任务执行成功即推送执行结果,并且不再推送其他任务的执行结果;或者,推送每一个成功或者失败的执行结果;或者,所有任务均执行成功后一起推送执行结果。
本发明实施例提供的方法,还包括将待执行任务加入任务监控器;通过所述任务监控器对待执行任务进行监控,当任务监控器监测到任务超时时,或者当任务执行完成时,将该任务移除。
本发明实施例提供的方法,可以通过调用作业分发器(JobDispatcher)、Cron定时器、任务追踪器(TaskTracker)、以及任务执行器(TaskExecutor)等上文中提及的各个相关组件来实现。图2中示出了各组件调用的框架示意图,如图2所示,可以通过调用API创建待执行作业(Job)并指定该待执行作业(Job)的参数,然后通过调用作业分发器(JobDispatcher)将待执行作业(Job)分配至Cron定时器队列或者优先队列,其中可以设置多个优先队列;随后通过调用任务追踪器(TaskTracker)来实现任务的执行调度和分配,任务追踪器(TaskTracker)可以根据作业(Job)创建具体的任务(Task),并根据执行器类型(例如串行、并行等)选择指定的执行器(TaskExecutor)执行任务、以及监控任务的执行,任务执行结果通知等。该过程中,根据工作组参数选择指定工作组(WorkerGroup),工作组(WorkerGroup)用于维护与某一类作业(Job)相关的工作代理器(Worker Proxy)。例如如图2中所示,包括两个工作组(WorkerGroup)WorkerGroup1和WorkerGroup2,而每一个工作组(WorkerGroup)下各有两个工作代理器(Worker Proxy),工作过滤器(WorkerFilter)根据工作代理器匹配参数与工作代理器(WorkerProxy)的匹配规则及根据工作代理器的状态筛选出可用的工作代理器(WorkerProxy),然后任务执器调用工作代理器(WorkerProxy)执行具体的任务。
本发明实施例的该作业(Job)调度方法可以用于调度服务的提供端,面向业务系统,接收业务系统的任务请求,并对任务进行调度后通过外部服务或者插件来执行任务,接收外部服务或者插件的任务执行结果,并将结果返回至业务系统。图3中示出了调度服务提供端采用该方法与业务系统、以及外部服务于的交互过程。
本发明实施例提供的方法,例如可以应用于病毒云查杀,在病毒云查杀系统中,一个病毒样本的检测往往会对应多个检测引擎,而每个检测引擎都可以进行开、关控制,多个查杀引擎并行对同一样本进行处理,待所有检测引擎处理完毕后,把检测结果返回给业务系统。以病毒云查杀为例,具体说明本发明的执行过程:
1、病毒云查杀系统,调用调度系统API(AddJob)添加一项作业(Job)。
2、调度系统收到请求后创建作业,并通过调用作业分发器(JobDispatcher)分发作业,如触发类型为定时任务,则加入的定时任务中,如触发类型为队列任务,则放入优先队列中。
3、当定时任务定时时间到或收到队列任务推送消息后,调用任务追踪器(TaskTracker)根据作业(Job)信息创建任务(Task)。
4、任务追踪器(TaskTracker)根据执行器类型选择指定的任务执行器(TaskExecutor)。
5、任务执行器(TaskExecutor)根据工作组参数调用工作组管理器(WorkerGroupManager)选择指定的工作组(WorkerGroup)。
6、工作组(WorkerGroup)根据匹配参数(来源作业(Job)参数)调用工作过滤器(WorkerFilter)选择匹配的工作代理器(WorkerProxy)。
7、工作过滤器(WorkerFilter)根据匹配参数、工作代理器(WorkerProxy)的匹配规则及工作代理器(WorkerProxy)的开关状态,筛选出执行该任务的工作代理器(WorkerProxy)。
8、任务执行器(TaskExecutor)调用步聚7筛选出的多个工作代理器(WorkerProxy)执行具体的任务。
9、工作代理器(WorkerProxy)根据节点选择策略从外部工作服务集群(WorkerCluster)中选择一个外部服务(Worker)来执行具体的任务。
10、外部服务(Worker)执行完结果返回组任务执行器(TaskExecutor
11、任务执行器(TaskExecutor)根据结果推送方式判断是否向业务端推送检测结果。
本发明的实施例,还提供了一种作业调度装置,图4中示出了该作业调度装置400的构成框图,所述装置包括:
待执行作业创建模块401,用于根据任务请求创建待执行作业并指定该待执行作业的参数,所述参数包括触发类型、执行器类型以及任务结果推送方式;
任务执行器分配模块402,用于根据待执行作业的触发类型和执行器类型,为该待执行作业创建待执行任务并分配任务执行器;
工作代理器选择模块403,用于在任务执行器中,通过待执行作业的工作组参数,选择指定的工作组;在工作组中,通过工作过滤器根据工作代理器匹配参数和工作代理器的开关状态为该待执行任务选择多个工作代理器以通过外部服务执行该待执行任务;
任务执行结果接收模块404,用于接收返回的任务执行结果.
本发明该实施例提供的作业调度装置中各模块实现其各自功能的步骤与本发明上述实施例中作业调度方法的各步骤相同,在此将省略其重复描述。
本发明的实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明上述实施例中所述的方法中的步骤。计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器((RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
应当理解的是,本发明实施例中的处理器可以为中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
综上所述,本发明实施例涉及一种作业调度方法及装置,所述方法包括:根据任务请求创建待执行作业并指定该待执行作业的参数,所述参数包括触发类型、执行器类型以及任务结果推送方式;根据待执行作业的触发类型和执行器类型,为该待执行作业创建待执行任务并分配任务执行器;在任务执行器中,通过待执行作业的工作组参数,选择指定的工作组;在工作组中,通过工作过滤器根据工作代理器匹配参数和工作代理器的开关状态为该待执行任务选择多个工作代理器以通过外部服务执行该待执行任务;接收返回的任务执行结果。本发明实施例的技术方案,支持定时任务调度和优先队列任务调度(任务插队),灵活性较强;系统本身不执行具体的任务,从而实现了作业的定义与任务的执行解耦,可扩展性较强;并且根据特定的执行策略、节点选择策略来进行调度处理,提高了作业调度的效率,为高效完成任务执行提供了支持。
应当理解的是,以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (10)
1.一种作业调度方法,其特征在于,所述方法包括:
根据任务请求创建待执行作业并指定该待执行作业的参数,所述参数包括触发类型、执行器类型以及任务结果推送方式;
根据待执行作业的触发类型和执行器类型,为该待执行作业创建待执行任务并分配任务执行器:若触发类型为定时任务,则当定时时间到达时创建任务,若触发类型为队列任务,则当收到队列消息时创建任务;
在任务执行器中,通过待执行作业的工作组参数,选择指定的工作组;在工作组中,通过工作过滤器根据工作代理器匹配参数和工作代理器的开关状态为该待执行任务选择多个工作代理器以通过外部服务执行该待执行任务;接收返回的任务执行结果。
2.根据权利要求1所述的方法,其特征在于,根据待执行作业的触发类型和执行器类型,为该待执行作业创建待执行任务并分配任务执行器,包括:
根据待执行作业的触发类型和将该待执行作业分配至优先任务队列或者定时任务队列;
根据优先任务队列发出的任务信息或者定时任务队列发出的定时触发信息,创建该待执行作业的待执行任务;
根据该待执行任务的执行器类型指定对应的任务执行器。
3.根据权利要求2所述的方法,其特征在于,在任务执行器中,通过待执行作业的工作组参数,选择指定的工作组;在工作组中,通过工作过滤器根据工作代理器匹配参数和工作代理器的开关状态为该待执行任务选择多个工作代理器以执行该待执行任务,包括:
通过待执行作业的工作组参数,为该待执行任务选择指定的工作组,所述工作组包括与相应的待执行作业的工作组参数相关的多个工作代理器;
在该指定的工作组中,根据待执行作业的工作组参数、工作过滤器和工作代理器的开关状态为该待执行任务选择多个工作代理器以执行该待执行任务。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
每个工作代理器根据节点选择策略,从外部工作服务集群中选择一个外部服务来执行该待执行任务。
5.根据权利要求4所述的方法,其特征在于,所述外部服务执行该待执行任务包括以同步方式或者异步方式执行该待执行任务,其中,
若以同步方式执行该待执行任务,则在外部服务执行完成后通过返回值将执行结果返回;
若以异步方式执行该待执行任务,则在外部服务执行完成后通过回调或者消息通知方式将执行结果返回。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据返回的任务执行结果,通过任务执行器判断该待执行任务是否全部执行完成。
7.根据权利要求6所述的方法,其特征在于,根据返回的任务执行结果,通过任务执行器判断该待执行任务是否全部执行完成,包括:
若所述任务执行器为串行执行器,则判断是否继续调用下一个工作代理器来执行任务,并根据任务结果推送方式判断是否推送任务结果;
若所述任务执行器为并行执行器,则根据任务结果推送方式判断是否推送任务结果。
8.根据权利要求7所述的方法,其特征在于,针对串行执行器和并行执行器,所述任务结果推送方式包括:
任意一个任务执行成功即推送执行结果,并且不再推送其他任务的执行结果;或者,
推送每一个成功或者失败的执行结果;或者,
所有任务均执行成功后一起推送执行结果。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
将待执行任务加入任务监控器;通过所述任务监控器对待执行任务进行监控,当任务监控器监测到任务超时时,或者当任务执行完成时,将该任务移除。
10.一种作业调度装置,其特征在于,所述装置包括:
待执行作业创建模块,用于根据任务请求创建待执行作业并指定该待执行作业的参数,所述参数包括触发类型、执行器类型以及任务结果推送方式;
任务执行器分配模块,用于根据待执行作业的触发类型和执行器类型,为该待执行作业创建待执行任务并分配任务执行器:若触发类型为定时任务,则当定时时间到达时创建任务,若触发类型为队列任务,则当收到队列消息时创建任务;
工作代理器选择模块,用于在任务执行器中,通过待执行作业的工作组参数,选择指定的工作组;在工作组中,通过工作过滤器根据工作代理器匹配参数和工作代理器的开关状态为该待执行任务选择多个工作代理器以通过外部服务执行该待执行任务;
任务执行结果接收模块,用于接收返回的任务执行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211284903.8A CN115599519A (zh) | 2022-10-17 | 2022-10-17 | 一种作业调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211284903.8A CN115599519A (zh) | 2022-10-17 | 2022-10-17 | 一种作业调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599519A true CN115599519A (zh) | 2023-01-13 |
Family
ID=84847969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211284903.8A Pending CN115599519A (zh) | 2022-10-17 | 2022-10-17 | 一种作业调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599519A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190798A (zh) * | 2020-01-03 | 2020-05-22 | 苏宁云计算有限公司 | 一种业务数据监控警告装置及方法 |
CN111930529A (zh) * | 2020-10-09 | 2020-11-13 | 上海富友支付服务股份有限公司 | 基于消息队列及微服务的数据同步方法、模块及系统 |
CN113268318A (zh) * | 2021-04-07 | 2021-08-17 | 北京思特奇信息技术股份有限公司 | 一种任务调度的方法和分布式系统 |
CN114253742A (zh) * | 2021-12-09 | 2022-03-29 | 上海精鲲计算机科技有限公司 | 一种无服务器框架分布式执行方法及系统 |
-
2022
- 2022-10-17 CN CN202211284903.8A patent/CN115599519A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190798A (zh) * | 2020-01-03 | 2020-05-22 | 苏宁云计算有限公司 | 一种业务数据监控警告装置及方法 |
CN111930529A (zh) * | 2020-10-09 | 2020-11-13 | 上海富友支付服务股份有限公司 | 基于消息队列及微服务的数据同步方法、模块及系统 |
CN113268318A (zh) * | 2021-04-07 | 2021-08-17 | 北京思特奇信息技术股份有限公司 | 一种任务调度的方法和分布式系统 |
CN114253742A (zh) * | 2021-12-09 | 2022-03-29 | 上海精鲲计算机科技有限公司 | 一种无服务器框架分布式执行方法及系统 |
Non-Patent Citations (1)
Title |
---|
朱荣鑫,黄迪璇,张天: "《Go语言高并发与微服务实战》", 中国铁道出版社有限公司, pages: 358 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020181813A1 (zh) | 一种基于数据处理的任务调度方法及相关设备 | |
CN110351384B (zh) | 大数据平台资源管理方法、装置、设备及可读存储介质 | |
US7657892B2 (en) | System and method for application server with self-tuned threading model | |
Ramos-Thuel et al. | On-line scheduling of hard deadline aperiodic tasks in fixed-priority systems | |
JP3944154B2 (ja) | マルチスレッド・サーバ内のスレッド・プールを動的に調整する方法およびシステム | |
US8185624B2 (en) | Efficient on-demand provisioning of servers for specific software sets | |
CN109814994B (zh) | 一种动态调度线程池的方法及终端 | |
US20060206894A1 (en) | Method of scheduling jobs using database management system for real-time processing | |
US20120117242A1 (en) | Service linkage system and information processing system | |
CN111913784B (zh) | 任务调度方法及装置、网元、存储介质 | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
CN1055557C (zh) | 多处理机控制系统中控制单位程序信息过载的方法 | |
CN107430526B (zh) | 用于调度数据处理的方法和节点 | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN114116149A (zh) | 一种任务调度方法、装置、设备及介质 | |
JP4862056B2 (ja) | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
Horowitz | A run-time execution model for referential integrity maintenance | |
CN115599519A (zh) | 一种作业调度方法及装置 | |
JPH09101902A (ja) | ジョブスケジューリング方式 | |
CN114020408A (zh) | 一种任务分片配置方法及装置、设备、存储介质 | |
CN113204434B (zh) | 基于k8s的计划任务执行方法、装置及计算机设备 | |
CN112395063A (zh) | 一种动态多线程调度方法及系统 | |
CN115904673B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230113 |
|
RJ01 | Rejection of invention patent application after publication |