本发明涉及计算机及通信领域,尤其涉及一种基于云系统的作业调度方法和系统。
背景技术:
云系统是采用国际首创的HFP及HDRDP技术在局域网架构下实现云计算使用效果的新一代通用计算机系统产品。云系统,又称云计算中心操作系统、云OS,是云计算后台数据中心的整体管理运营系统。在云系统中进行作业调度时,往往都以集群为单位处理。crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行,crontab文件包含送交cron守护进程的一系列作业和指令。但是,系统自带的crontab调度只能在单一节点上执行,且不具备伸缩、扩展、高可用能力,给系统业务和运维带来一定的困难,因此,亟需一种新的技术手段,能够解决上述技术问题。
技术实现要素:
本发明提供一种基于云系统的作业调度方法和系统,以解决上述技术问题。
本发明解决上述技术问题的技术方案如下:
一种基于云系统的作业调度方法,包括:
a.调度模块通过在Zookeeper服务器上进行注册,确认作业调度是否启用,所述Zookeeper服务器的Zookeeper服务为集群部署;
b.注册成功后,获取令牌,并查询所述令牌对应的作业调度配置表;
c.通过作业调度配置表获取该待调度作业的处理作业列表;
d.执行待调度作业,调度完成后将调度结果反馈给调度模块。
进一步,步骤c中还包括根据并发处理字段对处理作业列表进行多线程处理,并对各线程中的处理作业列表进行优先级排序,各线程循环处理作业列表。
通过多线程处理,并利用分布式内存数据库共享特性承载业务配置数据和结果数据,通过将返回结果存放分布式内存数据库中的结果集供云运维平台使用,提高了处理速度。
进一步,所述调度模块为多个,用于对调度作业均衡负载,调度模块对作业调度配置表中的作业配置信息进行校验,判断配置信息中各字段是否满足格式要求。
通过校验,排除不符合格式要求的作业配置信息,减少无用信息处理,提升系统速度。
进一步,对所述作业配置信息进行解析,获取处理时间周期,并根据预设的时间周期阈值判断处理时间周期是否有效;
若判断结果为无效,则处理下一条作业;
若判断结果为有效,则读取结果集表,判断是否存在本周期未处理完的数据,若存在,则结束本次处理,处理下一条作业。
便于进行作业任务集群化管理与调度。
进一步,当作业配置信息符合要求且处理时间周期有效时,如果不存在本周期未处理完的数据,则将结果记录插入到结果集表,记录包含本作业的处理周期,并将处理状态置为初始状态,锁定该作业。
避免进行重复调度处理,浪费系统资源。
进一步,调度模块获取到反馈结果后,对作业调度结果集表进行更新,并将作业调度结果集表和作业配置信息分别存储于分布式内存数据库。
利用分布式内存数据库共享特性承载业务配置数据和结果数据,使调度监控服务更加可靠。进一步,所述Zookeeper服务器包括主用服务器和备用服务器,所述备用服务器用于当支撑集群中节点异常后,接管主用服务器进行工作,业务配置数据和结果集表分别承载于分布式内存数据库。
提高系统的容灾能力。
本发明还提供一种基于云系统的作业调度系统,包括:
Zookeeper服务器,用于提供注册服务,确认调度作业是否启用,所述Zookeeper服务器的Zookeeper服务为集群部署;
调度模块,用于通过作业调度配置表获取该待调度作业的处理作业列表,对待调度作业进行调度,所述调度模块为多个;
反馈模块,用于调度完成后将调度结果反馈给调度模块。
进一步,还包括:
校验模块,用于对作业调度配置表中的作业配置信息进行校验;
解析模块,用于对所述作业配置信息进行解析,获取处理时间周期,并根据预设的时间周期阈值判断处理时间周期是否有效;
若判断结果为无效,则处理下一条作业;
若判断结果为有效,则读取结果集表,判断是否存在本周期未处理完的数据,若存在,则结束本次处理,处理下一条作业。
进一步,所述Zookeeper服务器包括主用服务器和备用服务器,所述备用服务器用于当支撑集群中节点异常后,接管主用服务器进行工作,所述Zookeeper服务器设置有用于承载业务配置数据和结果集表的分布式内存数据库。
本发明的有益效果是:本发明中的基于云系统的作业调度方法和系统,解决了云系统中的分布式任务调度问题,支持实时任务、定时任务和crontab任务,有较好的伸缩性,扩展性,健壮稳定性,可以对云系统的作业任务实现集群化管理与调度,有效的预防单点故障,实现调度管理高度可用,也实现了全面的作业监控,提高了执行效率,使运营维护直观高效。
附图说明
图1为本发明实施例的基于云系统的作业调度方法的流程示意图。
图2为本发明实施例的基于云系统的作业调度系统的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本实施例中的基于云系统的作业调度方法,包括:
a.调度模块通过在Zookeeper服务器上进行注册,确认作业调度是否启用,所述Zookeeper服务器为集群部署;
b.注册成功后,获取令牌,并查询所述令牌对应的作业调度配置表;
c.通过作业调度配置表获取该待调度作业的处理作业列表;
d.执行待调度作业,调度完成后将调度结果反馈给调度模块。
在本实施例中,利用Zookeeper实现调度监控服务的高可用,启动调度任务后,先在集群部署的Zookeeper服务上进行注册,如果注册失败,直接退出进程,注册成功后,获取令牌,查询该令牌对应作业调度配置表,获取该进程处理作业列表,根据处理作业列表开始调度作业执行,作业完成后返回约定结果给调度模块。本实施例可以在系统集群内集中实现按业务逻辑处理作业,支持指定周期性的执行某些作业,实现类crontab调度管理功能,有效的防单点故障,实现调度管理高可用,并且能够实现全面的作业监控,含作业运行情况,执行效率,并能集中输出作业执行情况告警和错误反馈。
在本实施例中,步骤c中还包括根据并发处理字段对处理作业列表进行多线程处理,并对各线程中的处理作业列表进行优先级排序,各线程循环处理作业列表。依据并发处理字段归整多线程处理,各线程任务列表按处理优先级排序,各线程循环处理作业列表。在本实施例中,通过多线程处理,并利用分布式内存数据库共享特性承载业务配置数据和结果数据,通过将返回结果存放分布式内存数据库中的结果集供云运维平台使用,处理作业列表的优先级按照原任务的优先级进行排序,依次执行。
在本实施例中,调度模块为多个,用于对调度作业均衡负载,调度模块对作业调度配置表中的作业配置信息进行校验,判断配置信息中各字段是否满足格式要求,当然用户也可以根据需要,自定义调度模块所负责调度作业的数量,也可以采用同一个调度作业,采用多个调度模块共同负责的方式。本实施例中配置信息的字段包括时间和频率等信息,可以通过如下方法判断是否符合要求,例如:
分:0-59(60分钟制)
时:0-23(24小时制)
日:1-31(一个月最多31天)
月:1-12(一年12个月)
周:0-7(星期,0或7时代表星期天)
“*”:星号,代表任何时刻都接受;
“,”:逗号,代表分割时段的意思;
“-”:减号,表示一段时间范围;
“/n”:斜杠n,n代表数字,即每隔多少分钟执行一次。
判断配置信息中的时间及频率信息是否满足格式要求,符合要求则进行下一步,否则不执行,例如当时间分钟数没有处于0-59,即认为配置信息不满足格式要求。
在本实施例中,对所述作业配置信息进行解析,获取处理时间周期,并根据预设的时间周期阈值判断处理时间周期是否有效;
若判断结果为无效,则处理下一条作业;
若判断结果为有效,则读取结果集表,判断是否存在本周期未处理完的数据,若存在,则结束本次处理,处理下一条作业。
当作业配置信息符合要求且处理时间周期有效时,如果不存在本周期未处理完的数据,则将结果记录插入到结果集表,记录包含本作业的处理周期,并将处理状态置为初始状态,锁定该作业。并通过将返回结果存放分布式内存数据库中的结果集供云运维平台使用。结果存放后,开始调度作业执行,直到作业完成后返回约定结果给调度模块,调度模块获取到对应的反馈结果后,更新结果集表中对应的记录状态字段,到此本次作业调度结束,处理下一条作业。
在本实施例中,Zookeeper服务包括主用服务和备用服务,所述备用服务用于当支撑集群中节点异常后,接管主用服务进行工作,作业配置信息和结果集表分别承载于分布式内存数据库。本实施例通过主备模式支撑集群中节点异常后动态接管;利用分布式内存数据库共享特性承载业务配置数据和结果数据;各作业在集群中各节点按全集方式存放,提供统一发布工具;作业完成后依据约定的标准返回接口给作业调度系统,作业调度系统依据返回结果存放分布式内存数据库中的结果集供云运维平台使用;云运维平台为系统告警、日常运维提供数据接口。
相应地,本实施例还提供一种基于云系统的作业调度系统,如图2所示,包括:
Zookeeper服务器,用于提供注册服务,确认调度作业是否启用,所述Zookeeper服务器为集群部署;
调度模块,用于通过作业调度配置表获取该待调度作业的处理作业列表,对待调度作业进行调度;调度模块为多个。
反馈模块,用于调度完成后将调度结果反馈给调度模块;
校验模块,用于对作业调度配置表中的作业配置信息进行校验;
解析模块,用于对所述作业配置信息进行解析,获取处理时间周期,并根据预设的时间周期阈值判断处理时间周期是否有效;
若判断结果为无效,则处理下一条作业;
若判断结果为有效,则读取结果集表,判断是否存在本周期未处理完的数据,若存在,则结束本次处理,处理下一条作业。
本实施例中的Zookeeper服务器包括主用服务器和备用服务器,所述备用服务器用于当支撑集群中节点异常后,接管主用服务器进行工作,所述Zookeeper服务器设置有用于承载业务配置数据和结果集表的分布式内存数据库。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。