一种基于定时调度的采集任务智能分配方法及系统与流程

文档序号:25543331发布日期:2021-06-18 20:40
一种基于定时调度的采集任务智能分配方法及系统与流程

本发明涉及数据集成领域,尤其涉及一种基于定时调度的采集任务智能分配方法及系统。



背景技术:

计划任务是指在约定的时间执行已经计划好的工作任务,这是表面的意思。在linux中,我们经常用到cron服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的任务。在linux系统中,计划任务一般是由cron承担,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时来调用度工作任务。

当前许多系统需要定时任务主要表现在内部系统依赖其他系统,随着信息化的日渐发展,在数据中蕴含的价值逐渐被人们所挖掘发现,数据集成中的数据采集成了目前最热门的话题之一,其中配置定时调度任务完成自动化采集更是重中之重。专利号cn202010662872.x,公开了一种可配置的定时任务调度方法及系统,对任务进行定时调度;但是仅仅只是对cron进行基础的配置,其cron配置的方式较为繁琐,需要一批一批的人工配置,流程复杂,工作量大,耗时长。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于定时调度的采集任务智能分配方法及系统。

本发明的目的是通过以下技术方案来实现的:

一种基于定时调度的采集任务智能分配方法,包括以下步骤:

s1:用户配置cron表达式参数;

s2:系统根据参数计算时间区域内合理的出发时间点进行分配;以cron表达式的格式进行处理;

s3:给每个采集任务匹配一个cron表达式;

s4:将所有任务都自动分配好定时调度的时间。

进一步的,所述s1中用户配置的cron表达式参数包括起初时间、结束时间、不同组定时任务的时间间隔、同组的最大执行任务数以及总任务数。

进一步的,所述s2包括以下子步骤:

s201:系统获取相关参数信息;

s202:根据分配组数n、时间间隔和起初结束时间参数计算时间区间是否合理;然后,判断最大执行任务数和总任务数的关系;

s203:若总任务数小于或等于最大执行任务数,则将任务分配在同一时刻执行调度;

s204:若总任务数大于最大任务数,则前n-1组按照时间间隔参数分配最大执行任务数的调度任务,第n组按照时间间隔计算在最后一个时间点分配剩余任务;

s205:将分配结果格式转换为cron表达式格式;

s206:以cron表达式作为参数在数据库中进行修改。

进一步的,所述分配组数n=总任务数/最大执行任务数+1。

一种基于定时调度的采集任务智能分配系统,包括采集任务调度管理模块、cron配置模块和数据库;在采集任务调度管理模块输入参数;cron配置模块根据参数批量生成cron表达式,并与任务进行匹配;数据库存储所有生成的cron表达式;当分配cron表达式开始执行时,采集任务调度管理模块通过批量配置cron表达式的工具类对数据进行处理,并通过jdbc与sql结合的方式对数据库进行修改。

本发明的有益效果:本发明大幅度减少了用户的操作,只需要配置一些简单的采集配置信息,就可以实现定时调度任务按照参数的设置自动分配匹配。

附图说明

图1是本发明的方法流程图。

图2是cron表达式批量配置执行流程图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。

本实施例中,如图1和图2所示,一种基于定时调度的采集任务智能分配方法,包括以下步骤:

s1:用户配置cron表达式参数;

s2:系统根据参数计算时间区域内合理的出发时间点进行分配;以cron表达式的格式进行处理;

s3:给每个采集任务匹配一个cron表达式;

s4:将所有任务都自动分配好定时调度的时间。

其中,所述s1中用户配置的cron表达式参数包括起初时间、结束时间、不同组定时任务的时间间隔、同组的最大执行任务数以及总任务数。

其中,所述s2包括以下子步骤:

s201:系统获取相关参数信息;

s202:根据分配组数n、时间间隔和起初结束时间参数计算时间区间是否合理;然后,判断最大执行任务数和总任务数的关系;

s203:若总任务数小于或等于最大执行任务数,则将任务分配在同一时刻执行调度;

s204:若总任务数大于最大任务数,则前n-1组按照时间间隔参数分配最大执行任务数的调度任务,第n组按照时间间隔计算在最后一个时间点分配剩余任务;

s205:将分配结果格式转换为cron表达式格式;

s206:以cron表达式作为参数在数据库中进行修改。

其中,所述分配组数n=总任务数/最大执行任务数+1。

一种基于定时调度的采集任务智能分配系统,包括采集任务调度管理模块、cron配置模块和数据库;在采集任务调度管理模块输入参数;cron配置模块根据参数批量生成cron表达式,并与任务进行匹配;数据库存储所有生成的cron表达式;当分配cron表达式开始执行时,采集任务调度管理模块通过批量配置cron表达式的工具类对数据进行处理,并通过jdbc与sql结合的方式对数据库进行修改。

其中,总任务数表示选择的任务数量;每时刻最大任务数表示一个时间点能同时进行任务调度的最大数量。时间间隔和时间间隔单位结合表示所选择的时间区间中,每隔多久分配一次任务。其中一个时间点的任务分配达到每时刻最大任务数,则相隔时间后分配剩余任务,以此类推;填完时间配置后,进行分配。分配成功后,可查看结果。

其中,通过java定义一个工具类,通过该工具类实现如图2所示的cron表达式批量配置执行流程。

通过对该工具类进行调用,实现批量配置cron表达式的过程,以减少重复代码。

本实施例中,定时调度任务的批量配置cron表达式方式如下:

1、用户通过可视化页面进入配置界面

a)用户点击批量配置按钮弹出配置框。

2、用户选择需要配置的定时调度任务

a)用户首先选择目录列表中的任务类型;

b)用户批量选择对应任务类型中的定时调度任务;

c)可单选可全选;

d)点击时间区间变更按钮进入配置页面。

3、用户配置必要的参数

a)起始和结束的时间;

b)不同组的定时任务的时间间隔;

c)同组的最大任务数;

d)总任务数。

4、用户点击分配按钮执行

a)成功,返回成功状态信息;

b)失败,返回失败状态信息。

用户只需要通过可视化页面选择一些必要的参数就能够实现定时调度任务cron表达式的批量配置。在采集任务调度管理模块中,用户只需要再界面上根据业务需求进行调度任务时间的配置,任务数,最大任务数的配置等等,具体实现方式用户不需要关心,当分配cron表达式任务执行时,系统会从用户的配置信息中读取相关数据,通过批量配置cron表达式的工具类来完成数据的处理,并通过jdbc与sql结合的方式对数据库支持的修改方式进行修改,完成定时调度任务cron表达式的配置。

当定时调度任务cron表达式批量配置开始执行时,系统读取用户配置的参数,将其传入到cron表达式处理工具类中,首先计算分配这些定时调度任务所需的时间,判断用户给出的时间区间是否合理,然后判断最大执行任务数和总任务数的关系,若最大执行任务数大于等于总任务数,则任务全部分配在一个时间节点调度。若最大任务数小于总任务数,则计算分配的组数,在最后一组前都分配满最大任务数,最后一组任务数则等于总任务数减去已分配任务数。分配好后将所有数据都按照一定的格式组装,转换成执行器能识别的cron表达式的格式。然后通过更新数据库将cron表达式批量更新。

本发明大幅度减少了用户的操作,只需要配置一些简单的采集配置信息,就可以实现定时调度任务按照参数的设置自动分配匹配。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。

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