一种批处理任务配置调度的方法和系统与流程

文档序号:13512819阅读:499来源:国知局
一种批处理任务配置调度的方法和系统与流程

本申请涉及批处理工具领域,特别涉及一种批处理任务配置调度的方法和系统。



背景技术:

随着目前企业应用系统中,批量处理工具主要采用springbatch批处理框架,springbatch是一个批处理应用框架,不是调度框架,需要和调度框架合作来构建完成处理任务。但现有的调度框架不具备可视化的配置界面,一旦开发人员配置完成后,无法在不改动程序的前提下维护批量处理。



技术实现要素:

本申请的目的是提供一种批处理框架方案,包括批处理和批处理调度两个组成部分,解决批处理后还得调用调度框架才能实现调度功能。

为解决上述技术问题,本申请提供一种批处理任务配置调度的方法,技术方案如下:

读取所述批处理任务的配置数据,生成xml文件;

判断所述xml文件的代码中是否含有cron表达式;

若是,则通过调度器定时启动所述批处理任务。

其中,读取所述批处理任务的配置数据,生成xml文件包括:

读取所述批处理任务的配置数据;

创建文档对象实例;

通过所述文档对象实例的createlement函数和creattextnode函数将所述批处理任务写入xml文件;

将所述xml文件输出到磁盘。

其中,读取所述批处理任务的配置数据,生成xml文件包括:

任务配置系统读取在任务界面输入的所述任务的配置数据;

根据所述配置数据调用createlement函数和creattextnode函数对应的脚本将所述批处理任务写入xml文件;

将所述xml文件输出到磁盘。

其中,所述方法还包括:

当接收到中断和/或重启指令时,调用相应的脚本中断和/或重启所述批处理任务。

本申请还提供一种批处理任务配置调度的系统,包括:

文件生成模块,用于读取所述批处理任务的配置数据,生成xml文件;

判断模块,用于判断所述xml文件的代码中是否含有cron表达式;

自动化模块,用于若所述xml文件的代码中含有cron表达式,则通过调度器定时启动所述批处理任务。

其中,所述文件生成模块包括:

读取单元,用于读取所述批处理任务的配置数据;

创建单元,用于创建文档对象实例;

写入单元,用于通过所述文档对象实例的createlement函数和creattextnode函数将所述批处理任务写入xml文件;

输出单元,用于将所述xml文件输出到磁盘。

其中,所述文件生成模块包括:

任务配置单元,用于读取在任务界面输入的所述任务的配置数据;根据所述配置数据调用createlement函数和creattextnode函数对应的脚本将所述批处理任务写入xml文件;将所述xml文件输出到磁盘。

其中,所述系统还包括:

后续处理模块,用于当接收到中断或重启指令时,调用相应的脚本中断所述任务或重启所述批处理任务。

本申请所提供的一种批处理任务配置调度的方法,包括读取所述批处理任务的配置数据,生成xml文件;判断所述xml文件的代码中是否含有cron表达式;若是,则通过调度器定时启动所述批处理任务。实现了在批处理任务配置和基于调度框架的任务调度的整合,无需再调用调度框架,而使用该框架中基于cron表达式的调度技术,使得在业务处理中任务的批处理更加方便、快捷,提高了批处理的效率。本申请还提供一种批处理任务配置调度的系统,具有上述有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种批处理任务配置调度的方法的流程图;

图2为本申请实施例所提供的另一种批处理任务配置调度的方法的流程图;

图3是本申请实施例所提供的批处理任务的配置界面;

图4是本申请实施例所提供的批处理任务定时执行时间的可视化配置界面;

图5是本申请实施例所提供的手动执行任务的功能界面;

图6是本申请实施例所提供的一种批处理任务配置调度的系统示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

请参考图1,图1为本申请实施例所提供的一种批处理任务配置调度的方法的流程图,具体方案如下:

s101:读取所述批处理任务的配置数据生成xml文件;

目前企业应用系统中,批量处理工具主要采用springbatch批处理框架,读取批处理任务的配置数据也就是配置springbatch的任务。而springbatch的任务通常由多个步骤组成,这些配置信息需要放在一个xml文件中。通过生成xml文件可以是:

读取所述批处理任务的配置数据;创建文档对象实例;通过所述文档对象实例的createlement函数和creattextnode函数将所述任务写入xml文件;将所述xml文件输出到磁盘。创建文档对象实例的目的是为了使用文档对象实例中的createlement函数和creattextnode函数,再利用这两个函数将所述任务写入xml文件。其中,将任务写入xml文件通常包括引入bean的配置文件,根据排序编号生成xml文件,控制输出格式,配置文件生成路径等等。将xml输出到磁盘,能方便后续对xml文件的处理,因此通常输出到电脑的某个硬盘中。当然还可以有其他的方法生成任务对应的xml文件,本申请在此不作限定。例如,还可以使用一个可视化界面实现xml文件的生成,只需要输入必要的几项参数即可。

s102:判断所述xml文件的代码中是否含有cron表达式;若有,执行步骤s103;

cron表达式是quartz框架中的调度技术,在这个过程中检测xml文件的代码中是否含有该表达式。若有,执行步骤s103;若没有,可以手动进行调度。

s103:通过调度器定时启动任务;

当xml文件中含有cron表达式时,该任务对应的xml将会通过调度定时启动。但不一定立即启动,可以在对所有任务的xml文件检查是否含有cron表达式之后,统一根据代码中调度信息安排调度器定时启动。此处对于调度器如何启动定时任务不作限定。

当调度器启动该任务时,可以先判断该任务是否为第一次执行。若是,则执行时间初始化,作datetime属性记录,并执行所述任务;若不是第一次执行,则调用start并根据所述datetime属性记录执行所述任务。这样做的好处是让系统记录每个任务每次启动的时间过程等详细信息,便于下一次启动。以及若在启动过程发生错误,可以根据记录寻找错误原因,方便使用及维护。

值得注意的是,调度器不仅能启动任务,还可以根据需要中止任务或者重启任务。

本申请实施例提供了一种批处理任务配置调度的方法,可以通过上述方法实现高效率的任务批处理和任务调度。

实施例二

基于上述实施例,当xml文件中不含有cron表达式时,可以手动执行任务。可以参考图2,此时的批处理任务配置调度方法流程图如图2所示,相比于图1,增加了步骤s104,即手动执行任务,对应上述实施例的步骤102中所述xml文件的代码中不含有cron表达式时的情况。可以预先编写好实现代码生成脚本,需要手动执行时,调用该脚本实现任务的手动执行。也可以利用一个可视化界面,例如界面中包含时间的设置,以及一个“启动”开关。设置完启动时间后,点击“启动”开关便意味着该任务可以在设置的时间启动。

实施例三

基于上述实施例,本实施例提供一种批处理任务配置调度的方法的可视化界面,参见图3至图5。

图3是批处理任务的配置界面,可以在此界面输入相关参数生成相应的xml文件。该界面中的部分功能代码可以如下所示:

生成job:

整个工作的描述:

description.appendchild(doc.createtextnode(pmbatchjobvo2.getremark()));

beans.appendchild(description);

根据排序编号生成xml文件:

当然生成xml的过程还可以包括控制输出格式,选择输出路径等并输出xml文件。

图4是批处理任务定时执行时间的可视化配置界面,实际属于图3的一个子界面,在此界面可视化的设置批处理任务的定时执行时间,以便于定时任务调度工具扫描所有任务的配置信息并启动定时任务。定时任务调度使用的是quartz的调度技术,可以包括定时任务的触发;判断任务是否为第一次执行;若是则jobinstance为null,jobexecution为null,jobparameters初始化为当前时间date和datetime属性;若不是则jobinstance是最近一次批处理任务实例,jobexecution是最近一次批处理任务执行记录,jobparameters初始化为当前时间date和datetime属性;还可以包括对记录的修改,中断任务,重启任务,以及触发定时任务出现异常时的处理等过程。

图5是手动执行任务的功能界面,左上角的三个页签代表的是三个任务,每个页签代表一个任务,每个页签中包含一个日期表和一个启动按钮,左边的日期表是用于设置批处理的时间,可根据需求设置时间,选好时间之后,点击“启动”按钮,即可执行该任务的跑批。

下面对本申请实施例提供的一种批处理任务配置调度的系统进行介绍,下文描述的批处理任务配置调度的系统与上文描述的批处理任务配置调度方法可相互对应参照。参见图6,图6为本申请实施例提供的一种批处理任务配置调度的系统示意图。该系统可以包括:

文件生成模块100,用于读取所述批处理任务的配置数据,生成xml文件;

判断模块200,用于判断所述xml文件的代码中是否含有cron表达式;

自动化模块300,用于若所述xml文件的代码中含有cron表达式,则通过调度器定时启动所述批处理任务。

基于上述实施例,作为优选的实施例,所述文件生成模块100可以包括:

读取单元,用于读取所述批处理任务的配置数据;

创建单元,用于创建文档对象实例;

写入单元,用于通过所述文档对象实例的createlement函数和creattextnode函数将所述批处理任务写入xml文件;

输出单元,用于将所述xml文件输出到磁盘。

基于上述实施例,作为优选的实施例,所述文件生成模块100可以包括:

任务配置单元,用于读取在任务界面输入的所述任务的配置数据;根据所述配置数据调用createlement函数和creattextnode函数对应的脚本将所述批处理任务写入xml文件;将所述xml文件输出到磁盘。

基于上述实施例,作为优选的实施例,所述系统还可以包括:

后续处理模块,用于当接收到中断或重启指令时,调用相应的脚本中断所述任务或重启所述批处理任务。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

以上对本申请所提供的一种批处理任务配置调度的方法和系统进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1