CN110377406A - 一种任务调度方法、装置、存储介质和服务器节点 - Google Patents
一种任务调度方法、装置、存储介质和服务器节点 Download PDFInfo
- Publication number
- CN110377406A CN110377406A CN201910522092.2A CN201910522092A CN110377406A CN 110377406 A CN110377406 A CN 110377406A CN 201910522092 A CN201910522092 A CN 201910522092A CN 110377406 A CN110377406 A CN 110377406A
- Authority
- CN
- China
- Prior art keywords
- task
- server node
- composite services
- services platform
- state
- 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 44
- 239000002131 composite material Substances 0.000 claims abstract description 85
- 230000008859 change Effects 0.000 claims abstract description 34
- 230000006870 function Effects 0.000 claims description 37
- 239000010453 quartz Substances 0.000 claims description 12
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000010485 coping Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000203 mixture Substances 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
- 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)
- Computer And Data Communications (AREA)
Abstract
本发明涉及计算机技术领域,提出一种任务调度方法、装置、存储介质和服务器节点。该方法于组合服务平台之外设置一个以上的服务器节点;服务器节点通过任务调度组件定时触发任务轮询操作,查询组合服务平台的任务表,从该任务表中获取一定数量待处理的任务,然后将这部分任务的状态变更为处理中;服务器节点在获得待处理的任务之后,会将这些任务添加到线程池中,然后调用所述组合服务平台的业务功能模块,以执行线程池中的任务;另外,在执行完一个任务之后,会通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。本发明能够提高任务的调度和处理效率,满足多业务场景需求,而且也不必改造组合服务平台的原有系统架构。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务调度方法、装置、存储介质和服务器节点。
背景技术
组合服务平台是为业务系统提供组合服务的公共平台,具体提供交易组合、跨系统实务一致性、交易路由选择以及跨核心调用等功能服务。
由于组合服务平台需要执行大量业务相关的任务,故必须提出一种合理有效的任务调度机制。目前,组合服务平台一般采用同步循环的任务调度机制,也即定时地从数据库的任务列表中一条一条地获取任务执行。
然而,随着业务场景的增加,平台对任务调度的依赖场景也越来越多,这种同步循环的任务调度机制的任务处理效率较低,已无法满足高实时性的业务需求。另外,若要改变组合服务平台的任务调度机制,常规方式是对组合服务平台的系统架构进行改造,难度和风险较大。
发明内容
有鉴于此,本发明提出一种任务调度方法、装置、存储介质和服务器节点,无需改造组合服务平台的系统架构,并能够获得一种满足多业务场景需求的任务调度机制。
本发明实施例的第一方面,提供了一种任务调度方法,应用于包括组合服务平台以及至少一个服务器节点的任务调度系统,所述至少一个服务器节点用于协同处理所述组合服务平台的待处理任务,所述任务调度方法包括:
所述服务器节点通过任务调度组件定时查询所述组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中,其中,每个所述服务器节点设有一个线程池以及一个基于Quartz框架开发的所述任务调度组件,所述组合服务平台设有用于执行任务的业务功能模块,所述任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态;
所述服务器节点通过任务调度组件将获取到的任务添加到线程池中;
所述服务器节点调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
所述服务器节点在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
本发明实施例的第二方面,提供了一种任务调度装置,应用于服务器节点,所述服务器节点设有一个线程池以及一个基于Quartz框架开发的任务调度组件,所述任务调度装置包括:
任务查询模块,用于通过所述任务调度组件定时查询组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中;其中,所述组合服务平台设有用于执行任务的业务功能模块,所述任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态;
任务添加模块,用于通过任务调度组件将所述获取到的任务添加到线程池中;
任务执行模块,用于调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
任务状态记录模块,用于在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
本发明实施例的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如本发明实施例的第一方面提出的任务调度方法的步骤。
本发明实施例的第四方面,提供了一种服务器节点,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如本发明实施例的第一方面提出的任务调度方法的步骤。
本发明实施例提出的任务调度方法,于组合服务平台之外设置服务器节点,该服务器节点设有线程池以及任务调度组件;服务器节点通过任务调度组件定时触发任务轮询操作,查询组合服务平台的任务表,从该任务表中获取一定数量待处理的任务,然后将这部分任务的状态变更为处理中;服务器节点在获得待处理的任务之后,会将这些任务添加到线程池中,然后调用所述组合服务平台的业务功能模块,以执行线程池中的任务;另外,在执行完一个任务之后,会通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。本发明实施例通过在组合服务平台之外设置一个以上的服务器节点,服务器节点设有任务调度组件,能够实现多节点协同处理组合服务平台的任务,以提高任务的调度和处理效率,满足多业务场景需求,而且也不必改造组合服务平台的原有系统架构。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种任务调度方法的第一个实施例的流程图;
图2是本发明实施例提供的一种任务调度方法的第二个实施例的流程图;
图3是本发明实施例提供的一种任务调度装置的一个实施例的结构图;
图4是本发明实施例提供的一种服务器节点的示意图。
具体实施方式
本发明提出一种任务调度方法、装置、存储介质和服务器节点,无需改造组合服务平台的系统架构,并能够获得一种满足多业务场景需求的任务调度机制。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种任务调度方法的第一个实施例包括:
101、服务器节点通过任务调度组件定时查询组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中;
本发明实施例提出的任务调度方法应用于由一个以上的服务器节点以及组合服务平台组成的系统,服务器节点设置于组合服务平台之外,每个服务器节点均设有各自的线程池以及任务调度组件。组合服务平台是为业务系统提供组合服务的公共平台,设有用于执行任务的业务功能模块,具体提供交易组合、跨系统实务一致性、交易路由选择以及跨核心调用等功能服务。
每个服务器节点都是独立的个体,可以单独和该组合服务平台进行交互,按照节点自身设置的任务轮询间隔,定时发送任务查询请求给该组合服务平台,从平台的任务表中获取一定数量的任务进行处理,在处理完任务之后,服务器节点会发送一个任务完成的信息给该组合服务平台,以更改任务表中的任务状态记录。
服务器节点的任务调度组件基于Quartz框架开发,Quartz框架的核心是调度器,负责管理Quartz应用运行时的环境,调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理,启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业,这是Quartz能并发运行多个作业的原理。该任务调度组件主要用于查询、获取和执行组合服务平台的任务。
服务器节点通过任务调度组件定时查询组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中,该任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态。
组合服务平台产生的业务需求任务,比如状态的更新,结果通知等任务,会记录到平台设置的一个任务表中,每个记录的任务均有对应的任务状态,比如待处理,处理中或者已完成等状态。任务调度组件可以采用Quartz定时机制,定时触发任务轮询的操作,遍历查询该任务表,获取一定数量的待处理任务,然后将获取到的任务的状态更改为处理中,以防止多个服务器节点重复获取相同的任务,每次获取的待处理任务的数量可以根据服务器节点的性能以及线程池的大小设置。
进一步的,在服务器节点从所述任务表中获取一定数量的状态为待处理的任务之后,还可以包括:
服务器节点通过任务调度组件,使用数据库锁于所述任务表中将获取到的任务锁定,被锁定的任务无法被其它服务器节点获取以及变更状态。
在服务器节点将获取到的任务的状态变更为处理中之后,还可以包括:
服务器节点通过任务调度组件对所述获取到的任务解除锁定。
由于各个服务器节点的任务调度组件是独立工作的,故存在多个任务调度组件同时查询该任务表,获取待处理任务的可能性。而在某个任务调度组件获取到一部分待处理任务之后,将这部分任务的状态更改为处理中之前的这个时间段,其它的任务调度组件有可能也会去获取这部分任务,从而导致多个节点重复获取相同任务的问题。
为了解决这个问题,在某个任务调度组件从该任务表中获取一定数量待处理的任务之后,可以使用数据库锁于该任务表中将这部分待处理任务锁定,处于锁定状态的任务无法被其它服务器节点获取以及变更状态;当获得这部分任务的服务器节点将这部分任务的状态更改为处理中之后,即可解除任务的锁定。
102、服务器节点通过任务调度组件将所述获取到的任务添加到线程池中;
接着,服务器节点会通过任务调度组件将所述获取到的任务添加到自己的线程池中,等待依次执行。
进一步的,在步骤102之后,还可以包括:
(1)服务器节点检测线程池的状态;
(2)若检测到线程池的状态达到饱和,则服务器节点将所述获取到的任务从线程池中移除,并通过任务调度组件将所述任务表中记录的所述获取到的任务的状态变更为待处理。
通过这样设置,若某个服务器节点的线程池中包含的任务数量已达到预设的上限值,则该服务器节点会将所述获取到的任务从线程池中移除,相当于将这部分任务重新打回去,在该任务表中将这部分任务的状态从处理中重新变更为待处理,使得这部分任务可被其它服务器节点获取,从而避免出现线程池溢出的问题。
103、服务器节点调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
服务器节点可以调用所述组合服务平台的业务功能模块,以执行线程池中的任务。组合服务平台产生的各类业务需求任务,需要通过一定的业务功能模块执行,比如状态更新任务需要调用状态更新相关的功能模块,结果通知任务需要调用信息发送相关的功能模块。
具体的,服务器节点可以通过远程方法调用(RMI)的方式调用所述组合服务平台的业务功能模块,基本步骤为:组合服务平台的业务功能模块使用RMI封装平台的业务处理逻辑,并通过JNDI发布所述业务处理逻辑的RMI服务;服务器节点配置所述RMI服务的地址;服务器节点通过所述RMI服务的地址调用所述组合服务平台的业务功能模块。
RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。通过RMI技术,某一个本地的JVM可以调用存在于另外一个JVM中的对象方法,就好像它仅仅是在调用本地JVM中某个对象方法一样。
104、服务器节点在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
当某个服务器节点的线程池中的一个任务执行完毕后,该节点的任务调度组件会将该任务表中该任务的状态变更为已完成,从而完成一次任务调度的过程。应当理解,在本发明实施例中,所述一个以上的服务器节点中的每一个服务器节点都是独立地执行上述步骤101-104,以协同处理该组合服务平台的待处理任务,从而提高任务调度处理的效率和实时性。
本发明实施例提出的任务调度方法,于组合服务平台之外设置服务器节点,该服务器节点设有线程池以及任务调度组件;服务器节点通过任务调度组件定时触发任务轮询操作,查询组合服务平台的任务表,从该任务表中获取一定数量待处理的任务,然后将这部分任务的状态变更为处理中;服务器节点在获得待处理的任务之后,会将这些任务添加到线程池中,然后调用所述组合服务平台的业务功能模块,以执行线程池中的任务;另外,在执行完一个任务之后,会通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。本发明实施例通过在组合服务平台之外设置一个或以上的服务器节点,服务器节点设有任务调度组件,能够实现多节点协同处理组合服务平台的任务,以提高任务的调度和处理效率,满足多业务场景需求,而且也不必改造组合服务平台的原有系统架构。
请参阅图2,本发明实施例中一种任务调度方法的第二个实施例包括:
201、服务器节点获取主机状态、使能状态以及线程池状态;
本实施例同样应用于由一个以上的服务器节点以及组合服务平台组成的系统,服务器节点设置于组合服务平台之外,每个服务器节点均设有各自的线程池以及任务调度组件。
各个服务器节点会分别获取各自的主机状态、使能状态以及线程池状态,主机状态即主机的机器状态,用于表示服务器节点的主机是否正常;使能状态用于表示服务器节点是否启用,只有处于启用状态的服务器节点才会调度处理组合服务平台的任务;所述线程池状态用于表示服务器节点的线程池运作是否正常,比如线程池是否溢出,是否报错等状态。
202、判断所述主机状态、使能状态以及线程池状态是否均正常;
在获取节点的主机状态、使能状态以及线程池状态之后,判断这些状态是否均正常。若这些状态均正常,则执行步骤203-206;若有一个以上的状态产生异常,则在等待一定的时长后返回步骤201,等待下一次的定时查询操作。
对于任意一个服务器节点来说,只有当各项功能状态都正常时,才会执行查询组合服务平台的任务表的操作。通过这样设置,能够避免服务器节点在获取到任务之后由于自身的故障,导致任务无法执行或者执行出错的问题,从而保证平台任务的正常有序执行,提高系统的稳定度。
203、服务器节点通过任务调度组件查询组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中;
其中,所述服务器节点设有线程池以及任务调度组件,所述组合服务平台设有用于执行任务的业务功能模块,所述任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态。
204、服务器节点通过任务调度组件将所述获取到的任务添加到线程池中;
205、服务器节点调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
206、服务器节点在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
步骤203-206与步骤101-104相同,具体可参照步骤101-104的相关说明。
本发明实施例提出的任务调度方法,于组合服务平台之外设置服务器节点,该服务器节点设有线程池以及任务调度组件;服务器节点通过任务调度组件定时触发任务轮询操作,查询组合服务平台的任务表,从该任务表中获取一定数量待处理的任务,然后将这部分任务的状态变更为处理中;服务器节点在获得待处理的任务之后,会将这些任务添加到线程池中,然后调用所述组合服务平台的业务功能模块,以执行线程池中的任务;另外,在执行完一个任务之后,会通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。另外,在本发明实施例中,只有当服务器节点的各项功能状态都正常时,才会执行查询组合服务平台的任务表的操作。通过这样设置,能够避免服务器节点在获取到任务之后由于自身的故障,导致任务无法执行或者执行出错的问题,从而保证平台任务的正常有序执行,提高系统的稳定度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上面主要描述了一种任务调度方法,下面将对一种任务调度装置进行描述。
请参阅图3,本发明实施例提出的任务调度装置应用于服务器节点,所述服务器节点设有一个线程池以及一个基于Quartz框架开发的任务调度组件,所述任务调度装置包括:
任务查询模块301,用于通过所述任务调度组件定时查询组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中;其中,所述组合服务平台设有用于执行任务的业务功能模块,所述任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态;
任务添加模块302,用于通过任务调度组件将所述获取到的任务添加到线程池中;
任务执行模块303,用于调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
任务状态记录模块304,用于在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
进一步的,所述任务查询模块可以包括:
节点状态获取单元,用于获取主机状态、使能状态以及线程池状态;
任务查询单元,用于若主机状态、使能状态以及线程池状态均正常,则通过任务调度组件查询所述组合服务平台的任务表;
查询等待单元,用于若主机状态、使能状态或者线程池状态存在异常,则等待下一次的定时查询操作。
进一步的,所述任务调度装置还可以包括:
任务锁定模块,用于通过任务调度组件,使用数据库锁于所述任务表中将获取到的任务锁定,被锁定的任务无法被其它的服务器节点获取以及变更状态;
任务解锁模块,用于通过任务调度组件对所述获取到的任务解除锁定。
进一步的,所述任务执行模块可以包括:
服务地址配置单元,用于配置RMI服务的地址,所述RMI服务由所述组合服务平台的业务功能模块使用RMI封装平台的业务处理逻辑,然后通过JNDI发布得到;
服务地址访问单元,用于通过所述RMI服务的地址调用所述组合服务平台的业务功能模块。
进一步的,所述任务调度装置还可以包括:
线程池状态检测模块,用于检测线程池的状态;
任务移除模块,用于若检测到线程池的状态达到饱和,则将所述获取到的任务从线程池中移除,并通过任务调度组件将所述任务表中记录的所述获取到的任务的状态变更为待处理。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1或图2表示的任意一种任务调度方法的步骤。
本发明实施例还提供一种服务器节点,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如图1或图2表示的任意一种任务调度方法的步骤。
图4是本发明一实施例提供的服务器节点的示意图。如图4所示,该实施例的服务器节点4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机可读指令42。所述处理器40执行所述计算机可读指令42时实现上述各个任务调度方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器40执行所述计算机可读指令42时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至304的功能。
示例性的,所述计算机可读指令42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令42在所述服务器节点4中的执行过程。
所述服务器节点4可以是智能手机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器节点4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是服务器节点4的示例,并不构成对服务器节点4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器节点4还可以包括输入输出设备、网络接入设备、总线等。
所述处理器40可以是中央处理单元(CentraL Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitaL SignaL Processor,DSP)、专用集成电路(AppLication Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieLd-ProgrammabLe Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述服务器节点4的内部存储单元,例如服务器节点4的硬盘或内存。所述存储器41也可以是所述服务器节点4的外部存储设备,例如所述服务器节点4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure DigitaL,SD)卡,闪存卡(FLash Card)等。进一步地,所述存储器41还可以既包括所述服务器节点4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机可读指令以及所述服务器所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnLyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种任务调度方法,其特征在于,应用于包括组合服务平台以及至少一个服务器节点的任务调度系统,所述至少一个服务器节点用于协同处理所述组合服务平台的待处理任务,所述任务调度方法包括:
所述服务器节点通过任务调度组件定时查询所述组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中,其中,每个所述服务器节点设有一个线程池以及一个基于Quartz框架开发的所述任务调度组件,所述组合服务平台设有用于执行任务的业务功能模块,所述任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态;
所述服务器节点通过任务调度组件将所述获取到的任务添加到线程池中;
所述服务器节点调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
所述服务器节点在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
2.根据权利要求1所述的任务调度方法,其特征在于,所述服务器节点通过任务调度组件定时查询所述组合服务平台的任务表包括:
所述服务器节点定时获取主机状态、使能状态以及线程池状态,所述主机状态用于表示服务器节点的主机是否正常,所述使能状态用于表示服务器节点是否启用,所述线程池状态用于表示服务器节点的线程池运作是否正常;
若主机状态、使能状态以及线程池状态均正常,则所述服务器节点通过任务调度组件查询所述组合服务平台的任务表;
若主机状态、使能状态或者线程池状态存在异常,则所述服务器节点等待下一次的定时查询操作。
3.根据权利要求1所述的任务调度方法,其特征在于,在所述服务器节点从所述任务表中获取一定数量的状态为待处理的任务之后,还包括:
所述服务器节点通过任务调度组件,使用数据库锁于所述任务表中将获取到的任务锁定,被锁定的任务无法被其它服务器节点获取以及变更状态;
在所述服务器节点将获取到的任务的状态变更为处理中之后,还包括:
所述服务器节点通过任务调度组件对所述获取到的任务解除锁定。
4.根据权利要求1所述的任务调度方法,其特征在于,所述服务器节点调用所述组合服务平台的业务功能模块包括:
所述服务器节点配置RMI服务的地址,所述RMI服务由所述组合服务平台的业务功能模块使用RMI封装平台的业务处理逻辑,然后通过JNDI发布得到;
所述服务器节点通过所述RMI服务的地址调用所述组合服务平台的业务功能模块。
5.根据权利要求1-4中任一项所述的任务调度方法,其特征在于,在所述服务器节点通过任务调度组件将获取到的任务添加到线程池中之后,还包括:
所述服务器节点检测线程池的状态;
若检测到线程池的状态达到饱和,则所述服务器节点将所述获取到的任务从线程池中移除,并通过任务调度组件将所述任务表中记录的所述获取到的任务的状态变更为待处理。
6.一种任务调度装置,其特征在于,应用于服务器节点,所述服务器节点设有一个线程池以及一个基于Quartz框架开发的任务调度组件,所述任务调度装置包括:
任务查询模块,用于通过所述任务调度组件定时查询组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中;其中,所述组合服务平台设有用于执行任务的业务功能模块,所述任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态;
任务添加模块,用于通过任务调度组件将所述获取到的任务添加到线程池中;
任务执行模块,用于调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
任务状态记录模块,用于在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至5中任一项所述的任务调度方法的步骤。
8.一种服务器节点,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如下步骤:
通过任务调度组件定时查询组合服务平台的任务表,从所述任务表中获取一定数量的状态为待处理的任务,并将获取到的任务的状态变更为处理中;其中,所述服务器节点设有一个线程池以及一个基于Quartz框架开发的所述任务调度组件,所述组合服务平台设有用于执行任务的业务功能模块,所述任务表中记录有所述组合服务平台需要执行的各个任务以及每个任务所处的状态;
通过任务调度组件将所述获取到的任务添加到线程池中;
调用所述组合服务平台的业务功能模块,以执行线程池中的任务;
在执行完一个任务之后,通过任务调度组件将所述任务表中记录的所述执行完的任务的状态变更为已完成。
9.根据权利要求8所述的服务器节点,其特征在于,所述通过任务调度组件定时查询组合服务平台的任务表包括:
定时获取主机状态、使能状态以及线程池状态,所述主机状态用于表示服务器节点的主机是否正常,所述使能状态用于表示服务器节点是否启用,所述线程池状态用于表示服务器节点的线程池运作是否正常;
若主机状态、使能状态以及线程池状态均正常,则通过任务调度组件查询所述组合服务平台的任务表;
若主机状态、使能状态或者线程池状态存在异常,则等待下一次的定时查询操作。
10.根据权利要求8所述的服务器节点,其特征在于,所述处理器执行所述计算机可读指令时还实现如下步骤:
通过任务调度组件,使用数据库锁于所述任务表中将获取到的任务锁定,被锁定的任务无法被其它服务器节点获取以及变更状态;
通过任务调度组件对所述获取到的任务解除锁定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910522092.2A CN110377406A (zh) | 2019-06-17 | 2019-06-17 | 一种任务调度方法、装置、存储介质和服务器节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910522092.2A CN110377406A (zh) | 2019-06-17 | 2019-06-17 | 一种任务调度方法、装置、存储介质和服务器节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110377406A true CN110377406A (zh) | 2019-10-25 |
Family
ID=68250446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910522092.2A Pending CN110377406A (zh) | 2019-06-17 | 2019-06-17 | 一种任务调度方法、装置、存储介质和服务器节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377406A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737534A (zh) * | 2019-10-29 | 2020-01-31 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN111580948A (zh) * | 2020-04-30 | 2020-08-25 | 中国平安财产保险股份有限公司 | 任务调度方法、装置及计算机设备 |
CN111913808A (zh) * | 2020-08-19 | 2020-11-10 | 百度时代网络技术(北京)有限公司 | 任务分配的方法、装置、设备以及存储介质 |
CN112000445A (zh) * | 2020-07-08 | 2020-11-27 | 苏宁云计算有限公司 | 分布式任务调度的方法及系统 |
CN112445598A (zh) * | 2020-12-07 | 2021-03-05 | 建信金融科技有限责任公司 | 一种基于quartz的任务调度方法、装置、电子设备以及介质 |
CN112925622A (zh) * | 2021-02-26 | 2021-06-08 | 北信源系统集成有限公司 | 系统定时任务处理方法、装置、电子设备及存储介质 |
CN113127158A (zh) * | 2019-12-30 | 2021-07-16 | 百度在线网络技术(北京)有限公司 | 用于执行数据处理任务的方法及装置 |
CN113157426A (zh) * | 2020-10-26 | 2021-07-23 | 微医云(杭州)控股有限公司 | 一种任务调度方法、系统、设备及存储介质 |
CN113204419A (zh) * | 2021-05-26 | 2021-08-03 | 深圳市领星网络科技有限公司 | 一种超大规模任务调度分发处理方法、系统及计算机可读存储介质 |
CN113806046A (zh) * | 2021-09-15 | 2021-12-17 | 武汉虹信技术服务有限责任公司 | 一种基于线程池的任务调度系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420709A (zh) * | 2011-12-23 | 2012-04-18 | 大唐移动通信设备有限公司 | 一种基于任务框架的调度任务管理方法和设备 |
CN104536809A (zh) * | 2014-11-26 | 2015-04-22 | 上海瀚之友信息技术服务有限公司 | 一种基于客户端、服务器系统的分布式定时任务调度系统 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
-
2019
- 2019-06-17 CN CN201910522092.2A patent/CN110377406A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420709A (zh) * | 2011-12-23 | 2012-04-18 | 大唐移动通信设备有限公司 | 一种基于任务框架的调度任务管理方法和设备 |
CN104536809A (zh) * | 2014-11-26 | 2015-04-22 | 上海瀚之友信息技术服务有限公司 | 一种基于客户端、服务器系统的分布式定时任务调度系统 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
金勇华 等: "Java网络高级编程", 人民邮电出版社, pages: 489 - 490 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737534B (zh) * | 2019-10-29 | 2021-05-25 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN110737534A (zh) * | 2019-10-29 | 2020-01-31 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN113127158A (zh) * | 2019-12-30 | 2021-07-16 | 百度在线网络技术(北京)有限公司 | 用于执行数据处理任务的方法及装置 |
CN111580948A (zh) * | 2020-04-30 | 2020-08-25 | 中国平安财产保险股份有限公司 | 任务调度方法、装置及计算机设备 |
WO2022007594A1 (zh) * | 2020-07-08 | 2022-01-13 | 苏宁易购集团股份有限公司 | 分布式任务调度的方法及系统 |
CN112000445A (zh) * | 2020-07-08 | 2020-11-27 | 苏宁云计算有限公司 | 分布式任务调度的方法及系统 |
CN111913808A (zh) * | 2020-08-19 | 2020-11-10 | 百度时代网络技术(北京)有限公司 | 任务分配的方法、装置、设备以及存储介质 |
CN113157426A (zh) * | 2020-10-26 | 2021-07-23 | 微医云(杭州)控股有限公司 | 一种任务调度方法、系统、设备及存储介质 |
CN113157426B (zh) * | 2020-10-26 | 2024-04-02 | 微医云(杭州)控股有限公司 | 一种任务调度方法、系统、设备及存储介质 |
CN112445598A (zh) * | 2020-12-07 | 2021-03-05 | 建信金融科技有限责任公司 | 一种基于quartz的任务调度方法、装置、电子设备以及介质 |
CN112925622A (zh) * | 2021-02-26 | 2021-06-08 | 北信源系统集成有限公司 | 系统定时任务处理方法、装置、电子设备及存储介质 |
CN113204419A (zh) * | 2021-05-26 | 2021-08-03 | 深圳市领星网络科技有限公司 | 一种超大规模任务调度分发处理方法、系统及计算机可读存储介质 |
CN113806046A (zh) * | 2021-09-15 | 2021-12-17 | 武汉虹信技术服务有限责任公司 | 一种基于线程池的任务调度系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377406A (zh) | 一种任务调度方法、装置、存储介质和服务器节点 | |
Wohed et al. | Pattern based analysis of BPEL4WS | |
CN100594498C (zh) | 海量数据实时处理架构及用于该架构的实时随需处理平台 | |
EP1244963B1 (en) | Task scheduling and message passing | |
US6041306A (en) | System and method for performing flexible workflow process execution in a distributed workflow management system | |
CN102662725B (zh) | 一种事件驱动的高并发流程虚拟机实现方法 | |
CN102592198B (zh) | 一种支持组合业务的工作流引擎 | |
CN100573457C (zh) | 一种金融数据实现etl加工的方法和系统 | |
US8087022B2 (en) | Prevention of deadlock in a distributed computing environment | |
Martin et al. | A novel approach to decentralized workflow enactment | |
CN107436806A (zh) | 一种资源调度方法及系统 | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN101464810A (zh) | 服务程序处理方法及服务器 | |
CN109067841A (zh) | 基于ZooKeeper的服务限流方法、系统、服务器及存储介质 | |
CN104636878A (zh) | 一种银行自动处理任务的调度方法及装置 | |
US8261280B2 (en) | Prevention of deadlock in a distributed computing environment | |
US20050034127A1 (en) | Service interface | |
US20120059938A1 (en) | Dimension-ordered application placement in a multiprocessor computer | |
CN100547967C (zh) | 网格作业管理器与网格作业管理方法 | |
Wang et al. | Service selection in dynamic demand-driven Web services | |
CN102214094B (zh) | 经由异步编程模型执行操作 | |
Liu et al. | KubFBS: A fine‐grained and balance‐aware scheduling system for deep learning tasks based on kubernetes | |
CN116828035A (zh) | 一种基于云计算的数据集成系统 | |
CN110276153A (zh) | 并行离散时间仿真的非一致时间余度非严格时间管理方法 | |
CN109450913A (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 |