一种针对污水处理工艺自动实时报警任务的处理方法与流程

文档序号:17441110发布日期:2019-04-17 04:46阅读:603来源:国知局
一种针对污水处理工艺自动实时报警任务的处理方法与流程

本发明涉及污水处理领域,尤其是涉及一种针对污水处理工艺自动实时报警任务的处理方法。



背景技术:

在污水处理工艺管理系统中,随着水质环境的变化,报警业务需求会经常变化,需要经常根据季节,环境温度,设备循环使用周期定制一些特殊的周期、特定报警判断处理和特定后续处理的后台处理,市面的软件或架构常常没有办法提供一套完整的令人完全满意的技术解决方案。比如很多软件不能提供特殊的时间周期定义,工厂下班或节假日或一些企业内的突发假期期间,某些区域应该没有人员出现,传统的软件大多很难面对这样复杂的场景,由于是不用人工干预,只通过系统来有效的报警,所以往往需要值班人员通过增加人工巡检,来解决这个问题。比如在不同的环境温度下,需要针对不同的水质指标,定制不同的阀值进行预警,市面很多软件无法应对这些复杂场景的报警需求。又比如系统新增一些处理内容时,经常要系统下线,然后发布,很可能造成一些预警处理的遗漏,对正常的报警流程带来漏报风险。通常情况下,为了满足以上需求,系统架构完全重新开发,费时费力,而且因为架构没有得到充分应用,可能对系统未来的运行效率和稳定性也会造成很大的风险。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种针对污水处理工艺自动实时报警任务的处理方法。

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

一种针对污水处理工艺自动实时报警任务的处理方法,包括:

在前端设置报警计划表、报警排除日期表、报警点信息表、任务流信息表、任务单元信息表,所述报警计划表中包括多条记录;

在后端取得报警计划表;

依次判断报警计划表中的每条记录是否在发布状态,对不在发布状态的记录配置报警任务的触发周期、需要排除的特定日期和指定的触发任务,按照触发周期启动该报警任务,在报警任务的执行过程中,在符合报警条件时执行指定的触发任务;

定期检查报警计划表的信息更新情况,更新新增的或变更的记录。

优选的,所述在报警任务的执行过程中通过javascript脚本语言在线动态的调整报警的处理逻辑。

优选的,所述执行指定的触发任务的过程包括:根据任务流信息表的内容按顺序调用任务单元信息表中指定的服务接口。

优选的,所述执行指定的触发任务的过程通过springbatch批处理框架实现。

优选的,所述报警任务的启动通过基于actor模型的多线程架构实现。

优选的,所述报警任务的触发周期的配置通过quartz框架实现。

优选的,所述报警计划表中包含的属性有:报警id、报警规则名称、报警描述、报警触发类型、报警位置描述、点报警规则id、诊断执行id、报警种类id、警报级别id、时间进度配置、时间进度节假日类型、报警处理javascript脚本公式、处理方式、前任务流id、人工确认标记、后任务流id、报警信息模板、报警现场id、关联设备组id、关联设备主键、开始日期、开始时间、结束日期、结束时间、发布状态。

与现有技术相比,本发明具有以下优点:

1、利用当前的主流技术akka+quartz+springbatch+javascript脚本语言+restful,实现在污水处理工艺管理系统中对报警任务的实时增加和修改,可以保证系统的高效性和稳定性,不用重新建造“轮子”,也大大减少了系统的复杂性。

2、利用javax.script调用嵌套的javascript脚本语言,可以灵活的在线动态的调整报警的处理逻辑,简化了开发过程。

3、可灵活的定义定时任务的时间周期定义,特别是需要特殊排除的日期。

4、任务流可以灵活的自定义复杂流程的任务单元,当不能重启系统的时候,可以通过增加一个webservice服务,可以保证系统的在线部署。

附图说明

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

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例

本申请提出一种针对污水处理工艺自动实时报警任务的处理方法,包括:

在前端设置报警计划表、报警排除日期表、报警点信息表、任务流信息表、任务单元信息表;

其中,报警计划表中包括多条记录,报警计划表中包含的属性有:报警id、报警规则名称、报警描述、报警触发类型、报警位置描述、点报警规则id、诊断执行id、报警种类id、警报级别id、时间进度配置、时间进度节假日类型、报警处理javascript脚本公式、处理方式、前任务流id、人工确认标记、后任务流id、报警信息模板、报警现场id、关联设备组id、关联设备主键、开始日期、开始时间、结束日期、结束时间、发布状态;

报警排除日期表中包含的属性有:报警id、排除日期;

报警点信息表包括的属性有:报警点id、点名称、报警id、采集建筑id、采集器id、仪表id、仪表参数符号/仪表参数id、运算字段别名(多点);

任务流信息表中包含的属性有:任务流id、任务流描述、任务触发种类、执行日志标记、发布状态;

任务单元信息表中包含的属性有:子任务id、任务流id、任务单元id、子任务描述、调用method、调用接口、父子任务id、父任务流转条件;

在后端取得报警计划表;

依次判断报警计划表中的每条记录是否在发布状态,对不在发布状态的记录配置报警任务的触发周期、需要排除的特定日期和指定的触发任务,按照触发周期启动该报警任务,在报警任务的执行过程中,在符合报警条件时执行指定的触发任务;

定期检查报警计划表的信息更新情况,更新新增的或变更的记录,新增的记录启动新的线程执行,变更的记录会停止旧的定时任务,并根据变更的记录判断是否启动新的报警任务。

本实施例中,本方法通过基于actor模型的多线程架构akka来生成启动一个一个报警任务,并监控报警任务的生命周期,根据报警任务的增加、修改或删除来在线动态的调整多报警任务的状态;通过quartz框架配置报警任务的触发周期,包括对配置的报警任务进行在线动态的时间周期定义,并定时的出发任务流;通过springbatch批处理框架执行指定的触发任务,具体负责对定义的任务流按照流程执行制定的webservice服务;利用javax.script调用嵌套的javascript脚本语言,在线动态的调整报警的处理逻辑;由于restfulwebservice定义的任务可以是系统自己定义的restfulwebservice接口,也可以是来自第三方的restfulwebservice接口,因此增加的服务可单独部署,不用影响主系统的在线状态。

如图1所示,本实施中,本方法的具体实现过程包括以下步骤:

401、在web服务器程序中设置报警计划表、报警排除日期表、报警点信息表、任务流信息表、任务单元信息表;

402、通过akka进程启动一个报警任务管理的actor线程,取得报警计划表;

403、循环判断报警计划表的记录是否在发布状态,对在发布状态的记录跳过并判断下一条记录,对不在发布状态的记录执行步骤404;

404、通过quartz构架,配置报警任务的触发周期、需要排除的特定日期和指定的触发任务,然后启动报警任务的触发周期;

405、通过quartz构架机制,在步骤404中设置的时间节点触发执行报警任务;

406、在报警任务执行过程中,根据任务计划表主键查找相应的任务流信息表,根据报警计划表主键查找相应的报警处理javascript脚本,然后判断是否符合报警条件,若是,则执行步骤407的报警处理,否则返回步骤405;

407、调用springbatch的实例,根据任务流信息表及子表任务单元信息表的内容执行任务单元;

408、根据任务单元的定义按顺序调用任务单元信息表中指定的restful的webservice接口;

409、在akka中的actor主线程中定期执行步骤402并检查报警计划表的更新信息;

410、判断更新信息的报警计划表的记录是否在正在执行的报警任务队列里,若是,则执行步骤411,否则返回执行步骤402;

411、停止存在于正在执行的报警任务队列里的变更的记录的任务,然后返回执行步骤402。

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