CN104050029B - 一种任务调度系统 - Google Patents
一种任务调度系统 Download PDFInfo
- Publication number
- CN104050029B CN104050029B CN201410239514.2A CN201410239514A CN104050029B CN 104050029 B CN104050029 B CN 104050029B CN 201410239514 A CN201410239514 A CN 201410239514A CN 104050029 B CN104050029 B CN 104050029B
- Authority
- CN
- China
- Prior art keywords
- task
- interface
- flow
- processing
- 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.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种任务调度系统,包括:数据库和运行在计算机集群的各节点之上的嵌入式框架;其中,所述数据库中存储有任务文件、任务配置参数和任务状态,其中,该任务配置参数包括最大处理节点数目,在该任务的实际处理节点数目未超过所述最大处理节点数目时允许获取该任务的任务文件;所述嵌入式框架包括:任务流程模块、任务处理模块和任务过程接口;其中,所述任务过程接口中封装有预置任务过程的处理功能;所述任务流程模块提供流程接口。本申请能够节省计算机集群中的管理成本和节点资源,且能够提高调度的便捷性和效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种任务调度系统。
背景技术
计算机集群是一种计算机系统,其通过多台计算机(又称为节点)连接起来协作完成计算作业。这些节点位于同一管理域中,其具有统一的管理策略并且作为一个整体向用户提供服务。将计算机集群上的作业任务分配到多个节点上的过程可以称为任务的调度。
现有技术一种任务调度系统,其在计算机集群中设定一个节点,其他节点为从节点,其中,主节点负责对从节点进行管理,所述管理具体可以包括:主节点周期性向从节点发送心跳信息,并根据从节点回复的心跳信息确定从节点的状态信息;主节点依据各从节点的状态信息将作业任务分配给从节点等等。
在实际中,在用户应用存在任务处理请求时,可以向上述任务调度系统发送存储文件,则主节点可以依据配置文件中记录的各从节点的状态信息,选择最优的从节点来处理该项任务处理请求;主节点将选择的从节点的IP地址和端口返回给用户应用,同时通知该从节点有文件上载并将文件名、文件大小等信息发送给该从节点。
然而,某些集群应用中会有轻型任务的调度需求,虽然其涉及任务量少、负载小,但调度触发的多样性、调度运行的复杂性及调度运维的可靠性却一样也不能省,在使用上述任务调度系统调度轻型任务时,存在如下问题:
第一,主节点需要对计算机集群中的众多从节点进行管理,这无疑耗费了大量的管理成本;
第二,上述众多从节点对于轻型任务而言显得过于庞大,浪费了过多的节点资源;
第三,需要依赖于用户应用与上述任务调度系统之间的通信交互,这样,在需要周期(例如每天)执行某任务时,用户应用需要每天向任务调度系统发送相应的任务处理请求,因此上述任务调度系统具有操作繁琐和效率低的缺点。
发明内容
本申请所要解决的技术问题是提供一种任务调度系统,能够节省计算机集群中的管理成本和节点资源,且能够提高调度的便捷性和效率。
为了解决上述问题,本申请公开了一种任务调度系统,包括:数据库和运行在计算机集群的各节点之上的嵌入式框架;
其中,所述数据库中存储有任务文件、任务配置参数和任务状态,其中,该任务配置参数包括最大处理节点数目,在该任务的实际处理节点数目未超过所述最大处理节点数目时允许获取该任务的任务文件;
所述嵌入式框架包括:任务流程模块、任务处理模块和任务过程接口;其中,所述任务过程接口中封装有预置任务过程的处理功能;所述任务流程模块提供流程接口;
所述任务处理模块,用于扫描所述数据库,在发现预置任务状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程接口执行相应的任务处理;
所述任务流程模块,用于在所述流程接口被所述任务处理模块调用时,解析该任务涉及的任务过程,依据解析结果调用对应的任务过程接口以执行相应任务过程的处理,并在相应任务过程的处理成功后进行任务状态的转换。
优选的,所述嵌入式框架还包括节点管理模块;
所述节点管理模块,用于向所述数据库登记所处节点的存活声明,以及,从所述数据库获取失效节点,并接手所述失效节点的任务。
优选的,所述预置任务状态包括待处理状态,所述流程接口包括流程执行接口,所述任务过程接口包括过程业务处理接口,所述过程业务处理接口中封装有业务逻辑过程的处理功能;
则所述任务处理模块包括:
任务执行子模块,用于扫描所述数据库,在发现待处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
则所述任务流程模块,具体用于在所述流程执行接口被所述任务执行子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程业务处理接口以进行业务逻辑过程的处理,并在业务逻辑过程的处理成功后将任务状态从待处理状态转换为处理成功状态。
优选的,所述任务过程接口还包括最终环境清理接口,所述最终环境清理接口中封装有任务终结时运行环境的清理功能;
则所述任务流程模块,还用于在业务逻辑过程的处理成功后调用所述最终环境清理接口以进行任务终结时运行环境的清理,并在任务终结时运行环境的清理成功后将任务状态从待处理状态转换为处理成功状态。
优选的,所述预置任务状态还包括断点重做状态,所述任务过程接口还包括过程断点重做环境清理接口,所述过程断点重做环境清理接口封装有业务逻辑过程文件的清理功能;
则所述任务执行子模块,还用于扫描所述数据库,在发现断点重做状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
则所述任务流程模块,还用于在所述流程执行接口被所述任务执行子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程断点重做环境清理接口以进行业务逻辑过程文件的清理,并在业务逻辑过程文件的清理成功后将任务状态从断点重做状态转换为待处理状态。
优选的,所述预置任务状态还包括待检查状态,所述流程接口还包括流程检查接口,所述任务过程接口包括过程环境检查接口,所述过程运行前环境检查接中封装有运行前环境检查的功能;
则所述任务处理模块还包括:
任务检查子模块,用于扫描所述数据库,在发现待检查状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程检查接口执行相应的任务处理;
则所述任务流程模块,还用于在所述流程检查接口被所述任务检查子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程环境检查接口以进行运行前环境检查,并在运行前环境检查成功后将任务状态从待检查状态转换为待处理状态。
优选的,所述预置任务状态还包括待预处理状态,所述流程接口还包括流程预处理接口,所述任务过程接口还包括过程预处理接口,所述过程预处理接中封装有运行前预处理的功能;
则所述任务处理模块还包括:
任务预处理子模块,用于扫描所述数据库,在发现待预处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程预处理接口执行相应的任务处理;
则所述任务流程模块,还用于在所述流程预处理接口被所述预处理子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程预处理接口以进行运行前预处理,并在运行前预处理成功后将任务状态从待预处理状态转换为待检查状态。
优选的,所述任务处理模块,具体用于扫描所述数据库,在发现预置任务状态的任务时,利用乐观锁机制获取该任务的任务文件,并在获取成功后调用所述流程接口执行相应的任务处理。
与现有技术相比,本申请具有以下优点:
本申请实施例提供了一种嵌入式框架,在应用于计算机集群的任务调度时,其可以运行在计算机集群的各节点之上,以实现对数据库中任务的调度。
第一,正是由于嵌入式框架可以运行在计算机集群的各节点之上,故计算机集群中所有的节点是平等的,不像现有技术存在主节点和从节点的区分,因此能够节省现有技术中主节点对于从节点的管理成本;
第二,任务可以任务文件的形式存在,数据库为各节点的中心位置,各节点可以通过数据库去抢占任务文件,在具体实现中,可以利用数据库锁的抢占性和系统中的乐观锁机制实现无主节点的自由任务调度;
第三,表征任务需求的任务配置参数可以配置的形式得到,例如,可以通过人机交互界面配置任务的最大处理节点数目,且只有在该任务的实际处理节点数目未超过所述最大处理节点数目时才允许获取该任务的任务文件;一方面,所述配置能够依据任务需求灵活地配置需要调度的节点数目,因此相对于现有技术中主节点调度所有的从节点,节省了资源开销;另一方面,所述配置能够依据任务需求灵活地配置任务的执行周期,而无需依赖于用户应用与上述任务调度系统之间的通信交互,因此,相对于现有技术中用户应用需要每天向任务调度系统发送相应的任务处理请求,本申请可以配置任务的执行周期,由抢占的节点周期性地执行任务,因此,本申请的任务调度系统还具有操作便捷和高效的优点。
附图说明
图1是本申请实施例一提供的任务调度系统的结构图;
图2是本申请实施例一种任务调度的方法流程图;
图3是本申请实施例二提供的任务调度系统的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
实施例一
参照图1,示出了本申请实施例一提供的任务调度系统的结构图,具体可以包括:数据库101和运行在计算机集群的各节点之上的嵌入式框架102;
其中,所述数据库101中存储有任务文件、任务配置参数和任务状态,其中,该任务配置参数具体可以包括最大处理节点数目,在该任务的实际处理节点数目未超过所述最大处理节点数目时允许获取该任务的任务文件;
所述嵌入式框架102具体可以包括:任务流程模块121、任务处理模块122和任务过程接口123;其中,所述任务过程接口123中封装有预置任务过程的处理功能;所述任务流程模块121提供流程接口;
所述任务处理模块122,用于扫描所述数据库101,在发现预置任务状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程接口执行相应的任务处理;
所述任务流程模块121,用于在所述流程接口被所述任务处理模块调用时,解析该任务涉及的任务过程,依据解析结果调用对应的任务过程接口以执行相应任务过程的处理,并在相应任务过程的处理成功后进行任务状态的转换。
某些集群应用中会有轻型任务的调度需求,虽然其涉及任务量少、负载小,但调度触发的多样性、调度运行的复杂性及调度运维的可靠性却一样也不能省。
为了便捷、高效地实现轻型任务的调度,本申请实施例提供了一种嵌入式框架102,在应用于计算机集群的任务调度时,其可以运行在计算机集群的各节点之上,以实现对数据库101中任务的调度,该嵌入式框架102具有无主节点限制、集群化、嵌入式、分布式、轻型任务、高可用性和用户可扩展的特点;
其中,嵌入式表现在:嵌入式框架102可以将任务过程接口123以用户编程接口(API,Application Programming Interface)的模式提供给用户,使调用者具备调度任务创建、任务管理和任务自动运行的功能;
分布式可用于表示嵌入式框架102可分布式在多机多节点的分布式运算环境中,节点间的调度可以互相协调运行,互相容错;
轻型任务可用于表示嵌入式框架102可以在调度任务需求适度情况下保证调度系统的运行效率,通常可以适用于总计调度任务50万以下的调度任务需求;
高可用性可用于表示嵌入式框架102在分布式集群中运行时,不会受到节点软件、硬件故障而导致调度任务中断,具备调度任务自动故障转移、断点自动重做等特点;
用户可扩展:嵌入式框架102可以提供有大量的二次开发接口,调用者可自定义任务处理的各个处理环节,具体可以包括正常业务处理、系统异常处理等,从而可保障用户最大灵活性,扩大系统适用范围。
综上,本实施例的任务调度具有如下特点:
第一,正是由于嵌入式框架102可以运行在计算机集群的各节点之上,故计算机集群中所有的节点是平等的,不像现有技术存在主节点和从节点的区分,因此能够节省现有技术中主节点对于从节点的管理成本;
第二,任务可以任务文件的形式存在,数据库101为各节点的中心位置,各节点可以通过数据库101去抢占任务文件,在具体实现中,可以利用数据库锁的抢占性实现无主节点的自由任务调度;
第三,表征任务需求的任务配置参数可以配置的形式得到,例如,可以通过人机交互界面配置任务的最大处理节点数目,且只有在该任务的实际处理节点数目未超过所述最大处理节点数目时才允许获取该任务的任务文件;一方面,所述配置能够依据任务需求灵活地配置需要调度的节点数目,因此相对于现有技术中主节点调度所有的从节点,节省了资源开销;另一方面,所述配置能够依据任务需求灵活地配置任务的执行周期,而无需依赖于用户应用与上述任务调度系统之间的通信交互,因此,相对于现有技术中用户应用需要每天向任务调度系统发送相应的任务处理请求,本申请可以配置任务的执行周期,由抢占的节点周期性地执行任务,因此,本申请的任务调度系统还具有操作便捷和高效的优点。
数据库101
在本实施例中,数据库101可用于存储各种任务信息,以便于节点之上的嵌入式框架102获取所述任务信息,并依据所述获取的任务信息执行相应的任务处理,这里的任务信息具体可以包括:任务文件、任务配置参数和任务状态等等。
其中,任务状态为任务调度和执行过程中的状态,其为所述嵌入式框架102调度任务的重要依据之一,在具体实现中,本领域技术人员可以根据具体的任务需求设计各种各样的任务状态,本实施例对具体的任务状态不加以限制。
在实际应用中,可以采用关系型数据库提供安全可靠的数据存储收到,并且,可以根据需要在关系数据库中存储调度任务文件、任务配置参数和任务状态等。
嵌入式框架102
嵌入式框架102在实际中可以Jar(java存档文件,JavaTM Archive File)包的形式存在,该Jar包中封装有嵌入式框架102的调度功能,而通过解压缩该Jar包,可以得到上述任务流程模块121、任务处理模块122和任务过程接口123。
任务过程是指业务流程中特定环节执行具体工作的单个过程,一个任务可以由若干个任务过程串联组成。每个任务过程可通过对应的任务过程接口123来实现,其中,每个任务过程接口123均可被任务流程模块121调用;其中本领域技术人员可以根据具体的任务特点,设计各种各样的任务过程接口123,本实施例对具体的任务过程接口123及所封装的功能不加以限制。
任务流程模块121对外提供流程接口供任务处理模块122调用,对内可调用任务过程接口123以执行相应任务过程的处理,其中,在被任务处理模块122调用时,其可以解析该任务涉及的任务过程,依据解析结果调用对应的任务过程接口,并在相应任务过程的处理成功后进行任务状态的转换,以实现任务中所有任务过程的连接。
为了抢占任务,任务处理模块122可以使用独立的线程,在实际中,其需要始终循环扫描所述数据库101以发现预置任务状态的任务,并且,在发现预置任务状态的任务时,可以通过数据库乐观锁机制确定该任务的任务状态以避免其他节点同时处理同一任务导致的状态混乱;并且,在任务文件获取成功后可以调用所述流程接口执行相应的任务处理。所述流程接口可用于每个任务中任务流程的控制,其可由本领域技术人员依据实际需求来设计。
这里的数据库乐观锁机制可以基于数据版本(Version)记录机制实现,其中数据版本也即针对数据增加的一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个“version”字段来实现;读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据而予以驳回。
总之,上述数据库乐观锁机制既可以提供高并发高可靠的多任务并行运行,又不会给数据库带来较大的运行压力。由于系统对数据库压力较小且采用乐观锁的机制,在没有使用到大型通用关系型数据库的应用中,也可以使用具备网络功能和java数据库连接(JDBC,Java Data Base Connectivity)接口的嵌入式数据库作为支撑关系数据库。
本申请实施例可以提供如下嵌入式框架102的技术方案:
技术方案一、
所述预置任务状态具体可以包括待处理状态,所述流程接口具体可以包括流程执行接口,所述任务过程接口具体可以包括过程业务处理接口,所述过程业务处理接口中封装有业务逻辑过程的处理功能;
则所述任务处理模块122具体可以包括:
任务执行子模块,用于扫描所述数据库,在发现待处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
则所述任务流程模块121,可具体用于在所述流程执行接口被所述任务执行子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程业务处理接口以进行业务逻辑过程的处理,并在业务逻辑过程的处理成功后将任务状态从待处理状态转换为处理成功状态。
本方案中,所述过程业务处理接口主要负责具体业务逻辑处理,是用户应用实现业务逻辑的主要部分,对于每个任务该接口仅需要运行一次,在实际中可得到处理成功或处理失败的结果。
技术方案二
技术方案二在技术方案一的基础上,还可以包括如下可选技术方案:
技术方案二中所述任务过程接口还可以包括最终环境清理接口,所述最终环境清理接口中封装有任务终结时运行环境的清理功能;
则所述任务流程模块121,还可用于在业务逻辑过程的处理成功后调用所述最终环境清理接口以进行任务终结时运行环境的清理,并在任务终结时运行环境的清理成功后将任务状态从待处理状态转换为处理成功状态。
本方案中,所述最终环境清理接口主要负责任务终结时运行环境的清理工作,比如临时数据的清理释放等。在实际中,所述流程任务接口可以在调用所述过程业务处理接口之后,且在结果为处理成功时调用所述最终环境清理接口。
技术方案三
技术方案三在技术方案一的基础上,还可以包括如下可选技术方案。
技术方案三中所述预置任务状态还可以包括断点重做状态,所述任务过程接口还可以包括过程断点重做环境清理接口,所述过程断点重做环境清理接口封装有业务逻辑过程文件的清理功能;
则所述任务执行子模块,还可用于扫描所述数据库,在发现断点重做状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
则所述任务流程模块121,还可用于在所述流程执行接口被所述任务执行子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程断点重做环境清理接口以进行业务逻辑过程文件的清理,并在业务逻辑过程文件的清理成功后将任务状态从断点重做状态转换为待处理状态。
本方案中,过程断点重做环境清理接口主要负责清理所述过程业务处理接口执行过程中产生的临时文件、临时内容,便于业务的重新执行。
其中,在业务逻辑过程的处理失败后可以将任务状态从待处理状态转换为所述断点重做状态,此种状态下需要先调用所述过程断点重做环境清理接口后才能重新执行。
技术方案四
技术方案四在技术方案一的基础上,还可以包括如下可选技术方案。
技术方案四中所述预置任务状态还可以包括待检查状态,所述流程接口还可以包括流程检查接口,所述任务过程接口还可以包括过程环境检查接口,所述过程运行前环境检查接中封装有运行前环境检查的功能;
则所述任务处理模块122还可以包括:
任务检查子模块,用于扫描所述数据库,在发现待检查状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程检查接口执行相应的任务处理;
则所述任务流程模块121,还可用于在所述流程检查接口被所述任务检查子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程环境检查接口以进行运行前环境检查,并在运行前环境检查成功后将任务状态从待检查状态转换为待处理状态。
本方案中,所述过程环境检查接口主要负责检查该过程是否满足自定义执行条件,用户可自定义各种条件来确保业务处理的正确性,当没有满足条件时,该接口可被反复调用运行,直到达到自定义条件。
技术方案五
技术方案五在技术方案一的基础上,还可以包括如下可选技术方案。
技术方案五中所述预置任务状态还可以包括待预处理状态,所述流程接口还可以包括流程预处理接口,所述任务过程接口还可以包括过程预处理接口,所述过程预处理接中封装有运行前预处理的功能;
则所述任务处理模块122还可以包括:
任务预处理子模块,用于扫描所述数据库,在发现待预处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程预处理接口执行相应的任务处理;
则所述任务流程模块121,还可用于在所述流程预处理接口被所述预处理子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程预处理接口以进行运行前预处理,并在运行前预处理成功后将任务状态从待预处理状态转换为待检查状态。
本方案中,所述过程预处理接口主要负责上述运行业务处理接口运行时所需的环境准备,比如文件目录的创建、数据库表的建立等。该接口在整个业务流程中仅需要成功运行一次。
为使本领域技术人员更好地理解本实施例,参照图2,示出了本申请实施例一种任务调度的方法流程图,具体可以包括:
步骤201、任务预处理子模块循环扫描数据库,在发现待预处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程预处理接口执行相应的任务处理;
步骤202、在所述流程预处理接口被所述预处理子模块调用时,任务流程模块解析该任务涉及的任务过程,依据解析结果调用所述过程预处理接口以进行运行前预处理,并在运行前预处理成功后将任务状态从待预处理状态转换为待检查状态;
步骤203、任务检查子模块循环扫描所述数据库,在发现待检查状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程检查接口执行相应的任务处理;
步骤204、在所述流程检查接口被所述任务检查子模块调用时,所述任务流程模块解析该任务涉及的任务过程,依据解析结果调用所述过程环境检查接口以进行运行前环境检查,并在运行前环境检查成功后将任务状态从待检查状态转换为待处理状态;
步骤205、任务执行子模块循环扫描所述数据库,在发现待处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
步骤206、在所述流程执行接口被所述任务执行子模块调用时,所述任务流程模块解析该任务涉及的任务过程,依据解析结果调用所述过程业务处理接口以进行业务逻辑过程的处理;
步骤207、所述任务流程模块在业务逻辑过程的处理成功后调用所述最终环境清理接口以进行任务终结时运行环境的清理,并在任务终结时运行环境的清理成功后将任务状态从待处理状态转换为处理成功状态;
步骤208、所述任务流程模块在业务逻辑过程的处理失败后将任务状态从待处理状态转换为断点重做状态;
步骤209、任务执行子模块循环扫描所述数据库,在发现断点重做状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
步骤210、在所述流程执行接口被所述任务执行子模块调用时,所述任务流程模块解析该任务涉及的任务过程,依据解析结果调用所述过程断点重做环境清理接口以进行业务逻辑过程文件的清理,并在业务逻辑过程文件的清理成功后将任务状态从断点重做状态转换为待处理状态。
需要说明的是,上述待预处理状态—待检查状态—待处理状态-处理成功状态,或者待预处理状态—待检查状态—待处理状态-断点重做状态-处理成功状态只是作为本申请中所述预置任务状态的应用示例;可以理解,本领域技术人员可以根据任务需求灵活地设计所述预置任务状态、流程接口和任务过程接口,并且,可以依据所设计的预置任务状态、流程接口和任务过程接口对所述任务流程模块和任务处理模块的功能进行进一步设计。本实施例对具体的预置任务状态、流程接口和任务过程接口不加以限制。
实施例二
参照图3,给出了本申请实施例二提供的任务调度系统的可选结构图。本实施例的任务调度系统在上述图1所示实施例的基础上,进一步还可以包括如下可选技术方案。
如图3所示,本实施例的嵌入式框架102还可以包括:节点管理模块124;
所述节点管理模块124,可用于向所述数据库登记所处节点的存活声明,以及,从所述数据库获取失效节点,并接手所述失效节点的任务。
本实施例增设节点管理模块124,节点管理模块124为线程模块,可始终循环向数据库登记所处节点的存活声明;这样,对于所述数据库而言,其可维护计算机集群之上各节点的存活状态,具体而言,其可循环监测计算机集群之上各节点的存活状态,如果在预置时间段内未收到来自某节点的存活声明,则将该节点的存活状态为失效,而如果在预置时间段内收到了来自某节点的存活声明,则将该节点的存活状态为存活,其中,所述预置时间段可由本领域技术人员依据实际需求设定,如为1s,10ms等等。
对于失效节点,其可能由于网络故障、负载超载等原因出现了异常,而失效节点之上可能存在一些抢占的且未执行完毕的任务,故为提高任务调度的可靠性,本实施例中,存活节点可以从所述数据库获取失效节点,并从失效节点接手未处理完毕的任务。在具体实现中,存活节点可以修改失效节点对应的任务状态,及清理已处理完毕的失效节点。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
以上对本申请所提供的一种任务调度系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种任务调度系统,其特征在于,包括:数据库和运行在计算机集群的各节点之上的嵌入式框架;
其中,所述数据库中存储有任务文件、任务配置参数和任务状态,其中,该任务配置参数包括最大处理节点数目,在该任务的实际处理节点数目未超过所述最大处理节点数目时允许获取该任务的任务文件;
所述嵌入式框架包括:任务流程模块、任务处理模块和任务过程接口;其中,所述任务过程接口中封装有预置任务过程的处理功能;所述任务流程模块提供流程接口;
所述任务处理模块,用于扫描所述数据库,在发现预置任务状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程接口执行相应的任务处理;其中,所述预置任务状态包括待处理状态;
所述任务流程模块,用于在所述流程接口被所述任务处理模块调用时,解析该任务涉及的任务过程,依据解析结果调用对应的任务过程接口以执行相应任务过程的处理,并在相应任务过程的处理成功后进行任务状态的转换。
2.如权利要求1所述的系统,其特征在于,所述嵌入式框架还包括节点管理模块;
所述节点管理模块,用于向所述数据库登记所处节点的存活声明,以及,从所述数据库获取失效节点,并接手所述失效节点的任务。
3.如权利要求1所述的系统,其特征在于,所述流程接口包括流程执行接口,所述任务过程接口包括过程业务处理接口,所述过程业务处理接口中封装有业务逻辑过程的处理功能;
则所述任务处理模块包括:
任务执行子模块,用于扫描所述数据库,在发现待处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
则所述任务流程模块,具体用于在所述流程执行接口被所述任务执行子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程业务处理接口以进行业务逻辑过程的处理,并在业务逻辑过程的处理成功后将任务状态从待处理状态转换为处理成功状态。
4.如权利要求3所述的系统,其特征在于,所述任务过程接口还包括最终环境清理接口,所述最终环境清理接口中封装有任务终结时运行环境的清理功能;
则所述任务流程模块,还用于在业务逻辑过程的处理成功后调用所述最终环境清理接口以进行任务终结时运行环境的清理,并在任务终结时运行环境的清理成功后将任务状态从待处理状态转换为处理成功状态。
5.如权利要求3所述的系统,其特征在于,所述预置任务状态还包括断点重做状态,所述任务过程接口还包括过程断点重做环境清理接口,所述过程断点重做环境清理接口封装有业务逻辑过程文件的清理功能;
则所述任务执行子模块,还用于扫描所述数据库,在发现断点重做状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程执行接口执行相应的任务处理;
则所述任务流程模块,还用于在所述流程执行接口被所述任务执行子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程断点重做环境清理接口以进行业务逻辑过程文件的清理,并在业务逻辑过程文件的清理成功后将任务状态从断点重做状态转换为待处理状态。
6.如权利要求3所述的系统,其特征在于,所述预置任务状态还包括待检查状态,所述流程接口还包括流程检查接口,所述任务过程接口包括过程环境检查接口,所述过程运行前环境检查接中封装有运行前环境检查的功能;
则所述任务处理模块还包括:
任务检查子模块,用于扫描所述数据库,在发现待检查状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程检查接口执行相应的任务处理;
则所述任务流程模块,还用于在所述流程检查接口被所述任务检查子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程环境检查接口以进行运行前环境检查,并在运行前环境检查成功后将任务状态从待检查状态转换为待处理状态。
7.如权利要求6所述的系统,其特征在于,所述预置任务状态还包括待预处理状态,所述流程接口还包括流程预处理接口,所述任务过程接口还包括过程预处理接口,所述过程预处理接中封装有运行前预处理的功能;
则所述任务处理模块还包括:
任务预处理子模块,用于扫描所述数据库,在发现待预处理状态的任务时,锁定并获取该任务的任务文件,并在获取成功后调用所述流程预处理接口执行相应的任务处理;
则所述任务流程模块,还用于在所述流程预处理接口被所述预处理子模块调用时,解析该任务涉及的任务过程,依据解析结果调用所述过程预处理接口以进行运行前预处理,并在运行前预处理成功后将任务状态从待预处理状态转换为待检查状态。
8.如权利要求1所述的系统,其特征在于,所述任务处理模块,具体用于扫描所述数据库,在发现预置任务状态的任务时,利用乐观锁机制获取该任务的任务文件,并在获取成功后调用所述流程接口执行相应的任务处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410239514.2A CN104050029B (zh) | 2014-05-30 | 2014-05-30 | 一种任务调度系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410239514.2A CN104050029B (zh) | 2014-05-30 | 2014-05-30 | 一种任务调度系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050029A CN104050029A (zh) | 2014-09-17 |
CN104050029B true CN104050029B (zh) | 2018-02-16 |
Family
ID=51502926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410239514.2A Active CN104050029B (zh) | 2014-05-30 | 2014-05-30 | 一种任务调度系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104050029B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376070B (zh) * | 2014-11-12 | 2018-10-16 | 中国建设银行股份有限公司 | 更新数据库记录的控制方法和装置 |
CN105701099B (zh) * | 2014-11-25 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 用于在分布式环境中执行任务的方法、装置及系统 |
CN104573833A (zh) * | 2014-12-31 | 2015-04-29 | 普天新能源有限责任公司 | 一种充电预约方法 |
CN105991737A (zh) * | 2015-02-26 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 分布式任务调度方法及系统 |
CN105045602B (zh) * | 2015-08-24 | 2019-07-23 | 北京金山安全软件有限公司 | 一种构建Hadoop应用开发框架的方法、装置及电子装置 |
US10108321B2 (en) * | 2015-08-31 | 2018-10-23 | Microsoft Technology Licensing, Llc | Interface for defining user directed partial graph execution |
CN106503001B (zh) * | 2015-09-03 | 2019-11-12 | 菜鸟智能物流控股有限公司 | 分布式集群环境中的数据更新方法及装置 |
CN105389207A (zh) * | 2015-11-06 | 2016-03-09 | 成都视达科信息技术有限公司 | 自适应数据请求处理方法、装置、任务调度器及系统 |
CN106878356B (zh) * | 2015-12-11 | 2020-08-04 | 中国移动通信集团公司 | 一种调度方法及计算节点 |
CN108733471A (zh) * | 2017-04-25 | 2018-11-02 | 深圳市优网科技有限公司 | 一种任务分发系统及方法 |
CN107688500B (zh) * | 2017-07-26 | 2021-12-24 | 创新先进技术有限公司 | 一种分布式任务处理方法、装置、系统及设备 |
CN108563502B (zh) * | 2017-12-14 | 2022-03-08 | 中国银联股份有限公司 | 一种任务调度方法和装置 |
CN108600008B (zh) * | 2018-04-24 | 2021-12-17 | 致云科技有限公司 | 服务器管理方法、服务器管理装置及分布式系统 |
CN109298937A (zh) * | 2018-09-19 | 2019-02-01 | 中国联合网络通信集团有限公司 | 文件解析方法及网络设备 |
CN110046039A (zh) * | 2019-03-28 | 2019-07-23 | 厦门网宿有限公司 | 任务调度方法及系统、调度中心服务器和存储介质 |
CN110489086B (zh) * | 2019-07-25 | 2021-01-19 | 广东高云半导体科技股份有限公司 | 流程执行控制方法、装置、计算机设备及存储介质 |
CN111190731A (zh) * | 2019-12-26 | 2020-05-22 | 集奥聚合(北京)人工智能科技有限公司 | 基于权重的集群任务调度系统 |
CN112965793B (zh) * | 2021-01-21 | 2023-11-21 | 中国互联网络信息中心 | 一种面向标识解析数据的数据仓库任务调度方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598227B1 (en) * | 1999-03-24 | 2003-07-22 | Rockwell Collins, Inc. | Vehicle entertainment system having multiple download channels |
CN101408852A (zh) * | 2008-11-26 | 2009-04-15 | 阿里巴巴集团控股有限公司 | 一种调度任务的方法、装置和系统 |
CN101471810A (zh) * | 2007-12-28 | 2009-07-01 | 华为技术有限公司 | 一种在集群环境下实现任务的方法、装置及系统 |
CN102880503A (zh) * | 2012-08-24 | 2013-01-16 | 新浪网技术(中国)有限公司 | 数据分析系统及数据分析方法 |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理系统 |
-
2014
- 2014-05-30 CN CN201410239514.2A patent/CN104050029B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598227B1 (en) * | 1999-03-24 | 2003-07-22 | Rockwell Collins, Inc. | Vehicle entertainment system having multiple download channels |
CN101471810A (zh) * | 2007-12-28 | 2009-07-01 | 华为技术有限公司 | 一种在集群环境下实现任务的方法、装置及系统 |
CN101408852A (zh) * | 2008-11-26 | 2009-04-15 | 阿里巴巴集团控股有限公司 | 一种调度任务的方法、装置和系统 |
CN102880503A (zh) * | 2012-08-24 | 2013-01-16 | 新浪网技术(中国)有限公司 | 数据分析系统及数据分析方法 |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104050029A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050029B (zh) | 一种任务调度系统 | |
CN102662725B (zh) | 一种事件驱动的高并发流程虚拟机实现方法 | |
CN109327509A (zh) | 一种主/从架构的低耦合的分布式流式计算框架 | |
CN103279390B (zh) | 一种面向小作业优化的并行处理系统 | |
CN103116520B (zh) | 基于tcp/ udp的远程过程调用rpc的方法 | |
CN104699541A (zh) | 同步数据的方法、装置、数据传输组件及系统 | |
CN109729024A (zh) | 数据包处理系统及方法 | |
CN105635298B (zh) | 一种基于业务隔离原理的数据采集设备统一接入系统 | |
CN105933408B (zh) | 一种Redis通用中间件的实现方法及装置 | |
CN107436806A (zh) | 一种资源调度方法及系统 | |
EP2898638A2 (en) | High performance data streaming | |
CN101707399A (zh) | 电能信息采集方法及系统 | |
CN102722355A (zh) | 基于工作流机制的并发式etl转换方法 | |
CN110489204A (zh) | 一种基于容器集群的大数据平台架构系统 | |
CN101262498A (zh) | 一种分布式调用消息的方法和装置 | |
CN105956481A (zh) | 一种数据处理方法及其装置 | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
CN104636878A (zh) | 一种银行自动处理任务的调度方法及装置 | |
CN103488697B (zh) | 能自动收集和交换碎片化商业信息的系统及移动终端 | |
CN104660435A (zh) | 面向智能管道的事务型网管引擎及其网管事务处理方法 | |
CN114095537B (zh) | 一种物联网应用中基于Netty的海量数据接入方法及系统 | |
CN103677853A (zh) | 一种在dm642型dsp内实现hit-tena中间件的方法 | |
CN106909368B (zh) | 一种实现快速业务开发的服务端业务层逻辑架构 | |
CN109828842A (zh) | 一种基于dpdk技术开发的高性能数据采集引擎方法 | |
CN109766131A (zh) | 基于多线程技术实现软件智能化自动升级的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |