一种用于算法执行与监控的调度方法与流程

文档序号:18009398发布日期:2019-06-25 23:48阅读:437来源:国知局
一种用于算法执行与监控的调度方法与流程

本发明涉及计算机应用技术与方法领域,尤其是一种用于算法执行与监控的调度技术方案。



背景技术:

新世纪以来,科学发展与信息技术成熟加速了多种基于数据分析方法的发展,较好地克服了复杂过程系统中普遍存在的建模困难等课题。但是由于数据分析算法多种多样,并且使用场景不同,对于算法的执行多数还是人为去控制,缺乏一种自动的控制调度方法。并且缺乏对于算法执行情况整体的监控及记录的手段。尤其是针对目前大数据处理等场景,涉及到大量算法执行调度监控的问题,由于数据多种多样,算法种类及数量繁多,靠人为或者半自动的方式去进行数据分析及挖掘算法的控制调度,影响整体效率,并且增加了人力消耗。



技术实现要素:

针对上述技术不足,本发明的目的提供一种用于算法执行与监控的调度方法。该方法可以在复杂的算法平台上,提供自动化,可定制的算法调度及监控。通过把被调度算法分为三类:实时算法,定时算法,等间隔算法,简化算法种类,提高算法调度效率。通过数据库存储被调度算法的配置信息,包括分类标识,执行时间标识,及是否执行标识等,借助数据库直观易操作的特性,使得整个配置过程简单清晰。通过对不同种类的算法封装不同的调度及监控框架,保证每一类算法被调度时的安全性,并且增加互斥机制,保证每个算法在被调度执行过程中,不会出现反复执行的情况。

本发明解决其技术问题所采用的技术方案是:一种用于算法执行与监控的调度方法,包括以下步骤:

(1)对算法进行分类;

(2)针对不同类别算法,提供不同框架封装、调度方式、反馈算法执行状态信息存入数据库及日志中;

(3)通过更改数据库中算法配置表,设置不同算法类别标识,以及执行时间标识;

(4)对于不同种类算法提供互斥机制,实现算法的执行与监控。

所述算法分类包括:

实时算法:始终在后台执行的算法;

定时算法:每天的固定时间执行一次的算法;

间隔算法:每隔设定时间执行一次的算法,间隔时间为:整分,整时。

所述算法配置表包括算法名称,算法类别标识位,算法执行时间设定,算法是否执行设定。

步骤(2),对于定时算法:

首先获取算法状态表中是否存在待调度算法的状态信息,存在则证明已被调度过;如果存在的状态信息标识位为0即失败,则算法需要重新调度执行;如果存在的状态信息标识位不为0,则本次调度不需要进行;

对于需要调度的算法,写入或更新状态信息标识位为2表示执行中,并执行算法,最终判断算法执行情况,更新算法状态表中状态标识位为对应状态,如果算法执行失败,打印失败信息到日志。

步骤(2),对于实时算法:

首先获取算法状态表中是否存在待调度算法的状态信息,存在则证明已被调度过;如果存在的状态信息标识位为0即失败,则算法需要重新调度执行;如果存在的状态信息标识位不为0,则本次调度不需要进行;

对于需要调度的算法,写入或更新状态信息标识位为2表示执行中,并执行算法,最终判断算法执行情况,更新算法状态表中状态标识位为对应状态,如果算法执行失败,打印失败信息到日志。

步骤(2)对于间隔算法:

首先获取算法状态表中待调度算法的最新状态信息,如果存在的状态信息标识位不为2,即当前无正在执行中的算法,则算法可以调度执行;如果存在的状态信息标识位为2表示执行中,则本次调度不需要进行;

对于需要调度的算法,写入或更新状态信息标识位为2表示执行中,并执行算法,最终判断算法执行情况,更近算法状态表中状态标识位为对应状态,如果算法执行失败,打印失败信息到日志。

对于不同种类算法提供互斥机制包括以下步骤:

获取到待调度算法后,首先进行互斥判断,即判断该算法是否已经在执行中;若是,则不执行该算法,否则调度执行该算法;同时对于实时算法及定时算法判断是否失败过,是则重新调度执行该算法。

本发明具有以下有益效果及优点:

1.本发明方法把所有算法归为三类,简化了算法的调度控制的复杂度。

2.本发明方法针对不同种类算法提供不同的调度方式,保证每类算法的调度准确性及安全性。

3.本发明方法配置数据均存放在数据库中,配置数据包括被调度算法的类别标识,执行时间标识,以及是否执行标识等,方便更改以及设置。

4.本发明方法反馈被调度算法的状态,包括启停时间,算法耗时,算法状态(失败,成功,执行中)等信息保存在数据库表中及日志中。

5.本发明方法存在互斥机制,保证不同种类算法不会在执行时重复调度。

6.本发明方法可实现自动控制,无需人为操控。

附图说明

图1是算法调度整体架构图;

图2是调度方法架构图;

图3是定时算法模块流程图;

图4是实时算法模块流程图;

图5是等间隔算法模块流程图。

具体实施方式

下面结合实施实例对本发明做进一步的详细说明。

本发明涉及一种用于算法执行与监控的调度方法。该方法包括:(1)本方法把需要调度执行的算法分为三类,分为实时算法,定时算法,等间隔算法,给出不同类别算法定义;(2)提供不同种类算法调度执行框架,按照算法分类的不同,对算法进行封装,针对不同种类算法提供不同的调度方法,并监控反馈算法执行过程中的状态,包括成功,失败,执行中等状态,把算法执行情况,包括启停时间,算法耗时,算法执行状态等多种信息存在数据库表中,失败信息存入日志中;(3)根据本方法的定义,把需要被调度执行的算法进行划分,通过数据库中对应算法调度配置表,设定算法调度配置,包括算法执行时间标识,是否执行标识,以及属于哪类算法的标识位设定;(4)本调度方法按照数据库中的算法设置进行算法调度执行与监控,根据不同类别的算法,提供互斥保障机制,保证算法不会在未完成的情况下被重复调度执行。通过本方法可以简化算法分类,提高算法调度与执行效率,监控算法执行情况。

(1)本调度方法把需要被调度执行及监控的数据分析及挖掘算法分为三类,包括:实时算法,定时算法,等间隔算法。

实时算法:在后台一直执行的算法。

定时算法:每天固定时间执行一次的算法。

等间隔算法:间隔固定时长执行一次的算法,固定时长可以为分钟粒度和小时粒度,不支持1小时15分钟这种混合粒度。

(2)本调度方法的简易流程图如图1所示。

按照上述对于算法分类的定义,首先确定待调度算法的分类,并将相关分类信息及算法信息等存入数据库中算法配置表中(表1)。

算法配置表结构如下:

表1

字段说明:

algorithm:算法存放位置及名称;

timeingtask:定时算法标志位,1代表该算法是定时算法,0代表该算法不是定时算法;

realtimetask:实时算法标志位,1代表该算法是实时算法,0代表不是;

intervaltask:等间隔时间算法,1代表该算法是等间隔算法,0代表不是;

(备注:定时,实时,及等间隔算法不可重复,即一个算法只能是其中一种。)

time:算法执行时间,对于三种不同的算法,代表不一样

a、定时算法:09:00:00代表每天9点0分执行该算法;

b、实时算法:00:00:00是默认写死的,实时算法从整个控制系统启动开始就执行;

c、等间隔算法:00:30:00代表每30分钟执行一次,可以通过修改对应字段实现修改,例:01:00:00,代表每小时一次,要求小时,分钟字段只允许一个有值,不能出现每1小时15分钟执行一次的设置,并且等间隔算法不支持到秒级别的设置。

d、runornot:算法是否需要执行标志位,1代表算法需要执行,0代表算法不需要执行,支持根据需求设定当天运行的算法模块;

根据上述算法配置表,可以把需要执行的算法进行定制化的配置,所有算法的执行情况均可人为把控,增加了调度方法的多样性,实用性,以及易用性。并且通过数据库存储算法配置情况,访问方便,易修改。

(3)上述配置完成后,调度方法会每分钟去扫描算法配置表,获取符合当前时间的算法进行调度及执行,调度方法流程图如图2。

调度方法获取到符合条件的待调度算法后,首先进行互斥判断,判断该算法是否已经在执行中,做算法执行保护,防止重复调度算法,导致算法混乱。对于可以执行的算法,会根据算法分类不同采用不同的调度与监控方式,下面进行介绍。

(4)在介绍三类算法的调度与监控方法前,先介绍算法状态表,即存储算法执行情况的数据表。

算法状态表结构如表2:

表2

字段说明:

date:算法执行日期

algorithm:等同算法配置部分说明

starttime:算法执行开始时间,精确到秒

finishtime:算法执行结束时间,未结束时,默认填写2020-01-0100:00:00

runtime:算法执行耗时,单位为秒

status:算法执行状态标识位,0代表失败,1代表成功,2代表执行中。

本调度方法在调度执行及监控算法的过程中会反馈算法状态存入该表中,进行算法维护及监控,为使用人员提供算法概况信息,对于失败算法,会存储失败信息在日志中,方便定位分析。

(5)下面分三类方法介绍对应的调度及监控方法。

a、定时算法流程图如图3。

首先获取算法状态表中,是否存在待调度算法的状态信息,存在则证明已被调度过,如果存在的状态信息标识位为0(即失败),则算法需要重新调度执行,如果存在的状态信息标识位不为0,由于定时算法一天仅需执行一次,则本次调度不需要进行。对于需要调度的算法,会写入/更新状态信息标识位为2(执行中),并执行算法,最终判断算法执行情况,更新算法状态表中状态标识位为对应状态(失败为0,成功为1),如果算法执行失败,还需打印失败信息到日志。

b、实时算法流程图如图4:

实时算法调度及监控流程与定时算法类似。区别在于,实时算法一直在后台执行,无成功状态,只需判断失败状态即可。

c、等间隔算法流程图如图5:

通过获取状态信息,重复进行一次互斥判断,即确定无在执行中的该算法。保证算法安全与稳定性。由于等间隔算法每隔一段时间执行一次,所以并不需要判断是否存在失败状态信息。

通过上述整体调度方法流程,及针对不同类别的算法调度及监控方法流程介绍,本调度方法简化了算法分类,提高了算法调度与执行效率,并实现了算法执行情况监控。

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