集群环境下批量任务的执行方法及装置制造方法及图纸

技术编号:30406140 阅读:16 留言:0更新日期:2021-10-20 11:11
本发明专利技术公开了一种集群环境下批量任务的执行方法及装置,涉及自动程序设计领域,该方法包括:将待执行的批量任务插入到任务处理表中,其中,任务处理表用于存储待执行的批量任务及批量任务的任务执行状态;将任务处理表中的批量任务,分配到服务器编号表中的各个服务器,其中,服务器编号表中包含:集群中所有可用于执行批量任务的服务器编号;根据各个服务器执行批量任务的情况,更新任务处理表中批量任务的任务执行状态。本发明专利技术能够在确保任务不会重复执行的情况下充分利用集群下的所有服务器资源执行批量任务。器资源执行批量任务。器资源执行批量任务。

【技术实现步骤摘要】
集群环境下批量任务的执行方法及装置


[0001]本专利技术涉及自动程序设计领域,尤其涉及一种集群环境下批量任务的执行方法及装置。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]众所周知,集群是由多台服务器共同提供服务。集群环境下的批量任务执行存在如下问题:

当多台服务器同时提供服务时,如何解决任务重复执行的问题;

当集群中的部分服务器不可用时,如何在不重启服务器、不影响其他服务的情况下,快速将批量任务重新分配(包括未完成任务的分配和新任务的分配)给其他可用服务器的问题;

当集群中存在新增服务器时,如何快速将增的服务器快速加入到批量任务队列中。
[0004]现有集群环境的批量任务执行方法,主要有如下三种方案:
[0005]方案一:将执行批量任务的代码部署在一台服务器上,这样只有一台服务器执行批量任务,不存在任务重复执行的问题。该方案的缺点是:只有一台服务器执行批量任务,浪费其他服务器资源;代码分开部署,增加代码部署的复杂度;若执行批量任务的服务器宕机的话,会导致批量任务不能执行,如果该台服务器长时间未排除故障还需要考虑将执行批量任务的代码部署到其他机器上,需重启服务器,增加运维成本。
[0006]方案二:将执行批量任务的代码部署在所有服务器上,利用配置文件配置执行批量任务的开关,只在一台服务器执行批量任务。该方案的缺点是:只有一台服务器执行批量任务,浪费其他服务器资源,如果执行批量任务的服务器发生故障需要关闭其批量任务开关,并开启集群中剩下某台服务器的批量任务开关,并重启该服务器。
[0007]方案三:利用Quartz任务调度框架的集群功能执行批量任务。该方案的缺点是需要新建十几张数据库表,有一定的学习成本,若不了解其实现原理,一旦发生故障将难以排查。
[0008]针对上述问题,目前尚未提出有效的解决方案。

技术实现思路

[0009]本专利技术实施例中提供了一种集群环境下批量任务的执行方法,用以解决现有集群在执行批量任务时存在服务器资源浪费、任务切换时需要重启服务器的技术问题,该方法包括:将待执行的批量任务插入到任务处理表中,其中,任务处理表用于存储待执行的批量任务及批量任务的任务执行状态;将所述任务处理表中的批量任务,分配到服务器编号表中的各个服务器,其中,所述服务器编号表中包含:集群中所有可用于执行批量任务的服务器编号;根据各个服务器执行批量任务的情况,更新所述任务处理表中批量任务的任务执行状态。
[0010]进一步地,在将待执行的批量任务插入到任务处理表中之前,所述方法还包括:在
数据库中创建任务处理表,其中,所述任务处理表中包含如下字段:任务处理服务器编号字段、任务执行状态字段和任务处理次数字段,其中,所述任务处理服务器编号字段用于存储当前执行批量任务的服务器编号;所述任务执行状态字段用于存储任务处理服务器执行批量任务的处理状态,所述处理状态包括:待处理、处理中、处理成功和处理失败;所述任务处理次数字段用于存储批量任务执行失败时重新执行的次数。
[0011]进一步地,在将所述任务处理表中的批量任务,分配到服务器编号表中的各个服务器之前,所述方法还包括:在数据库中创建服务器编号表及对应的编号序列,其中,所述编号序列中包含的编号个数等于集群中可用于执行批量任务的服务器总数量。
[0012]进一步地,在数据库中创建服务器编号表之后,所述方法还包括:监测集群中各个服务器的状态信息;根据集群中各个服务器的状态信息,更新所述服务器编号表。
[0013]进一步地,在数据库中创建服务器编号表之后,所述方法还包括:创建服务器编号获取函数,其中,所述服务器编号获取函数用于从所述服务器编号表中获取执行批量任务的服务器编号。
[0014]进一步地,在数据库中创建服务器编号表之后,所述方法还包括:当所述服务器编号表中出现不可用服务器的情况下,删除所述服务器编号表中不可用服务器的服务器编号。
[0015]进一步地,在删除所述服务器编号表中不可用服务器的服务器编号之后,所述方法还包括:当不可用服务器恢复到可用状态的情况下,将恢复可用状态的服务器编号添加到所述服务器编号表。
[0016]进一步地,在删除所述服务器编号表中不可用服务器的服务器编号之后,所述方法还包括:将不可用服务器上待处理、处理中以及处理失败且处理次数未达到上限值的任务,直接分配至所述服务器编号表中其他可用的服务器上。
[0017]进一步地,在删除所述服务器编号表中不可用服务器的服务器编号之后,所述方法还包括:将不可用服务器上待处理的任务,直接分配至所述服务器编号表中其他可用的服务器上;根据不可用服务器的日志信息,将不可用服务器上处理中以及处理失败且处理次数未达到上限值的任务,分配至所述服务器编号表中其他可用的服务器上。
[0018]进一步地,在数据库中创建服务器编号表之后,所述方法还包括:监测集群中是否存在新增服务器;当集群中存在新增服务器的情况下,为新增服务器设置单独的编号;将新增服务器的编号添加到所述服务器编号表,并根据集群中当前可用服务器的数量,判断是否更新所述服务器编号表对应的编号序列。
[0019]进一步地,将所述任务处理表中的批量任务,分配到服务器编号表中的各个服务器,包括:通过循环遍历所述服务器编号表中各个服务器的方式,将所述任务处理表中的批量任务,分配到所述服务器编号表中的各个服务器。
[0020]本专利技术实施例中还提供了一种集群环境下批量任务的执行装置,用以解决现有集群在执行批量任务时存在服务器资源浪费、任务切换时需要重启服务器的技术问题,该装置包括:批量任务获取模块,用于将待执行的批量任务插入到任务处理表中,其中,任务处理表用于存储待执行的批量任务及批量任务的任务执行状态;批量任务分配模块,用于将所述任务处理表中的批量任务,分配到服务器编号表中的各个服务器,其中,所述服务器编号表中包含:集群中所有可用于执行批量任务的服务器编号;任务状态更新模块,用于根据
各个服务器执行批量任务的情况,更新所述任务处理表中批量任务的任务执行状态。
[0021]进一步地,所述装置还包括:任务处理表创建模块,用于在数据库中创建任务处理表,其中,所述任务处理表中包含如下字段:任务处理服务器编号字段、任务执行状态字段和任务处理次数字段,其中,所述任务处理服务器编号字段用于存储当前执行批量任务的服务器编号;所述任务执行状态字段用于存储任务处理服务器执行批量任务的处理状态,所述处理状态包括:待处理、处理中、处理成功和处理失败;所述任务处理次数字段用于存储批量任务执行失败时重新执行的次数。
[0022]进一步地,所述装置还包括:服务器编号表创建模块,用于在数据库中创建服务器编号表及对应的编号序列,其中,所述编号序列中包含的编号个数等于集群中可用于执行批量任务的服务器总数量。
[0023本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群环境下批量任务的执行方法,其特征在于,包括:将待执行的批量任务插入到任务处理表中,其中,任务处理表用于存储待执行的批量任务及批量任务的任务执行状态;将所述任务处理表中的批量任务,分配到服务器编号表中的各个服务器,其中,所述服务器编号表中包含:集群中所有可用于执行批量任务的服务器编号;根据各个服务器执行批量任务的情况,更新所述任务处理表中批量任务的任务执行状态。2.如权利要求1所述的方法,其特征在于,在将待执行的批量任务插入到任务处理表中之前,所述方法还包括:在数据库中创建任务处理表,其中,所述任务处理表中包含如下字段:任务处理服务器编号字段、任务执行状态字段和任务处理次数字段,其中,所述任务处理服务器编号字段用于存储当前执行批量任务的服务器编号;所述任务执行状态字段用于存储任务处理服务器执行批量任务的处理状态,所述处理状态包括:待处理、处理中、处理成功和处理失败;所述任务处理次数字段用于存储批量任务执行失败时重新执行的次数。3.如权利要求1所述的方法,其特征在于,在将所述任务处理表中的批量任务,分配到服务器编号表中的各个服务器之前,所述方法还包括:在数据库中创建服务器编号表及对应的编号序列,其中,所述编号序列中包含的编号个数等于集群中可用于执行批量任务的服务器总数量。4.如权利要求3所述的方法,其特征在于,在数据库中创建服务器编号表及对应的编号序列,包括:获取集群中可用于执行批量任务的服务器信息;根据集群中可用于执行批量任务的服务器信息,在数据库中创建服务器编号表及对应的编号序列。5.如权利要求3所述的方法,其特征在于,在数据库中创建服务器编号表之后,所述方法还包括:监测集群中各个服务器的状态信息;根据集群中各个服务器的状态信息,更新所述服务器编号表。6.如权利要求3所述的方法,其特征在于,在数据库中创建服务器编号表之后,所述方法还包括:创建服务器编号获取函数,其中,所述服务器编号获取函数用于从所述服务器编号表中获取执行批量任务的服务器编号。7.如权利要求3所述的方法,其特征在于,在数据库中创建服务器编号表之后,所述方法还包括:当所述服务器编号表中出现不可用服务器的情况下,删除所述服务器编号表中不可用服务器的服务器编号。8.如权利要求7所述的方法,其特征在于,在删除所述服务器编号表中不可用服务器的服务器编号之后,所述方法还包括:当不可用服务器恢复到可用状态的情况下,将恢复可用状态的服务器编号添加到所述服务器编号表。
9.如权利要求7所述的方法,其特征在于,在删除所述服务器编号表中不可用服务器的服务器编号之后,所述方法还包括:将不可用服务器上待处理、处理中以及处理失败且处理次数未达到上限值的任务,直接分配至所述服务器编号表中其他可用的服务器上。10.如权利要求7所述的方法,其特征在于,在删除所述服务器编号表中不可用服务器的服务器编号之后,所述方法还包括:将不可用服务器上待处理的任务,直接分配至所述服务器编号表中其他可用的服务器上;根据不可用服务器的日志信息,将不可用服务器上处理中以及处理失败且处理次数未达到上限值的任务,分配至所述服务器编号表中其他可用的服务器上。11.如权利要求3所述的方法,其特征在于,在数据库中创建服务器编号表之后,所述方法还包括:监测集群中是否存在新增服务器;当集群中存在新增服务器的情况下,为新增服务器设置单独的编号;将新增服务器的编号添加到所述服务器编号表,并根据集群中当前可用服务器的数量,判断是否更新所述服务器编号表对应的编号序列。12.如权利要求1至11任一项所述的方法,其特征在于,将所述任务处理表中的批量任务,分配到服务器编号表中的各个服务器,包括:通过循环遍历所述服务器编号表中各个服务器的方式,将所述任务处理表中的批量任务,分配到所述服务器编号表中的各个服务器。13.一种集...

【专利技术属性】
技术研发人员:苏忠钰袁进威夏成扬
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1