基于rabbitmq的生产质量数据统计系统和方法与流程

文档序号:17762566发布日期:2019-05-24 21:49阅读:888来源:国知局
基于rabbitmq的生产质量数据统计系统和方法与流程

本发明涉及工业信息化技术领域,具体涉及工业生产管理系统,尤其是涉及一种基于rabbitmq的生产质量数据统计系统和方法。



背景技术:

2013年4月德国提出的工业4.0已势不可挡,利用物联信息系统将生产中的供应,制造,销售信息数据化、智慧化,最后达到快速,有效,个人化的产品供应已经成为未来工业的发展趋势。目前生产质量统计困难不及时,多靠质量人员人工统计,一些工厂甚至没有统计数据,现有一些信息化系统在统计过程中容易出现漏计或高并发下难以支撑的情况,一些信息化系统为避免高并发压力,采用延时统计,以保证数据准确性,但对于生产实时质量问题难以发现。



技术实现要素:

本发明的目的在于提供一种基于rabbitmq的生产质量数据统计系统和方法,既将生产过程质量进行信息化管理,同时极大程度上避免了漏计或高并发下导致统计系统瘫痪的场景,且实时的统计模式为系统源于生产服务与生产做出最有力的保障。

本发明通过下述技术方案解决上述问题:

一种基于rabbitmq的生产质量数据统计系统,所述系统包括生产过站模块、rabbitmq、数据处理模块、消息确认模块、业务数据库、消息持久化数据库和质量统计数据库,其中:

生产过站模块:与所述rabbitmq和消息确认模块连接,用于将过站信息存入业务数据库,同时通过rabbitmq发送消息给数据处理模块,并发送延时消息给消息确认模块;

数据处理模块:通过rabbitmq接收生产过站模块发送的消息并进行统计,并将统计结果存入质量统计数据库,同时通过rabbitmq发送确认消息;

消息确认模块:通过rabbitmq接收生产过站模块的延时消息和数据处理模块发送的确认消息,并将延时消息和确认消息存入消息持久化数据库。

进一步地,所述生产过站模块包括生成流程逻辑模块和业务消息模块,所述生产流程逻辑模块用于对生产产品进行逻辑处理后产生业务数据,并将业务数据存储到业务数据库,并将生产数据通过所述业务消息模块进行发送。

进一步地,所述数据处理模块包括生产数据转换质量统计数据模块和统计消息模块,所述生产数据转换质量统计数据模块用于将收到的生产数据转换为质量统计要求的数据并存储到质量统计数据库。

一种基于rabbitmq的生产质量数据统计方法,包括:

步骤a:在rabbitmq声明queue,所述queue包括常规生产消息队列statqueue,确认消息队列confirmqueue,确认消息死信队列deadconfirmqueue,常规消息死信队列deadqueue和统计模块确认队列ackqueue,并分别为常规生产消息队列statqueue和确认消息队列confirmqueue设置超时时间,并为常规生产消息队列startqueue配置常规消息死信队列deadqueue,为确认消息队列confirmqueue配置确认消息死信队列deadconfirmqueue;

步骤b:数据处理模块监听常规生产消息队列statqueue,消息确认模块监听确认消息死信队列deadconfirmqueue、统计模块确认队列ackqueue及常规消息死信队列deadqueue;

步骤c:对产品实现扫码过站,生产流程逻辑模块对生产产品进行逻辑处理后产生业务数据,并将业务数据存储到业务数据库;

步骤d:生成流程逻辑模块完成数据存储之后,将生产数据通过业务消息模块进行发送,将消息推送到常规生产消息队列statqueue和确认消息队列confirmqueue,数据处理模块通过监听常规生产消息队列statqueue获取生产数据;

步骤e:生产数据转换质量统计数据模块将收到的生产数据转换为质量统计要求的数据,并存储细化后的工序质量数据到质量统计数据库;

步骤f:消息存储后通过统计消息模块,将重新整理的消息推送到统计模块确认队列ackqueue,消息确认模块通过监听统计模块确认队列ackqueue获取该消息,将本次推送存储到消息持久化数据库,同时标记成功标识;

步骤g:确认消息队列confirmqueue的消息过期,被转发到确认消息死信队列deadconfirmqueue,消息确认模块通过监听确认消息死信队列deadconfirmqueue获取消息过期,并在消息持久化数据中查找是否已发送成功,若成功,则本次通信结束,若没有发送成功,则将消息存储到消息持久化数据库,同时标记未成功标识,并标记未成功次数;

步骤h:若没有发送成功,消息确认模块在预设时间后,通过定时任务,将未成功的消息,通过业务消息模块进行重试。

进一步地,所述步骤d中,若常规生产消息队列statqueue发送消息超时,消息自动进入常规消息死信队列deadqueue,消息确认模块通过监听常规消息死信队列deadqueue获取到该消息,则将消息存储到消息持久化数据库,同时标记未成功标识,并标记未成功次数。

进一步地,所述步骤g中,消息确认模块对于多次发送不成功的消息进行闲置处理,待人工处理。

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

本发明利用rabbitmq的高效特性,既将生产过程质量进行信息化管理,同时极大程度上避免了漏计或大并发下导致统计系统瘫痪的场景,且实时的统计模式为生产统计提供了更可靠更稳定的服务。

附图说明

图1为本发明的流程图。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例1:

一种基于rabbitmq的生产质量数据统计系统,所述系统包括生产过站模块、rabbitmq、数据处理模块、消息确认模块、业务数据库、消息持久化数据库和质量统计数据库,其中:

生产过站模块:与所述rabbitmq和消息确认模块连接,用于将过站信息存入业务数据库,同时通过rabbitmq发送消息给数据处理模块,并发送延时消息给消息确认模块;

数据处理模块:通过rabbitmq接收生产过站模块发送的消息并进行统计,并将统计结果存入质量统计数据库,同时通过rabbitmq发送确认消息;

消息确认模块:通过rabbitmq接收生产过站模块的延时消息和数据处理模块发送的确认消息,并将延时消息和确认消息存入消息持久化数据库。

进一步地,所述生产过站模块包括生成流程逻辑模块和业务消息模块,所述生产流程逻辑模块用于对生产产品进行逻辑处理后产生业务数据,并将业务数据存储到业务数据库,并将生产数据通过所述业务消息模块进行发送。

进一步地,所述数据处理模块包括生产数据转换质量统计数据模块和统计消息模块,所述生产数据转换质量统计数据模块用于将收到的生产数据转换为质量统计要求的数据并存储到质量统计数据库。

实施例2:

结合附图1所示,一种基于rabbitmq的生产质量数据统计方法,包括:

步骤a:在rabbitmq声明queue和exchange,所述queue包括常规生产消息队列statqueue,确认消息队列confirmqueue,确认消息死信队列deadconfirmqueue,常规消息死信队列deadqueue和统计模块确认队列ackqueue,并分别为常规生产消息队列statqueue和确认消息队列confirmqueue设置超时时间为1分钟和5分钟,并为常规生产消息队列startqueue配置常规消息死信队列deadqueue,为确认消息队列confirmqueue配置确认消息死信队列deadconfirmqueue;

步骤b:数据处理模块监听常规生产消息队列statqueue,消息确认模块监听确认消息死信队列deadconfirmqueue、统计模块确认队列ackqueue及常规消息死信队列deadqueue;

步骤c:对产品实现扫码过站,生产过站模块中的生产流程逻辑模块对生产产品进行逻辑处理后产生业务数据,并将业务数据存储到业务数据库(businessdb);

步骤d:生产过站模块的处理流程为:生成流程逻辑模块完成数据存储之后,将生产数据通过业务消息模块进行发送,将消息推送到rabbitmq中的常规生产消息队列statqueue和确认消息队列confirmqueue,数据处理模块通过监听常规生产消息队列statqueue获取生产数据;

步骤e:数据处理模块中的生产数据转换质量统计数据模块将收到的生产数据转换为质量统计要求的数据,质量统计要求的数据包括首次通过数量、二次通过数量、最终通过数量、最终未通过数量、直通率和合格率,并存储细化后的工序质量数据到质量统计数据库(statdb);

步骤f:消息存储后通过统计消息模块,将重新整理的消息推送到统计模块确认队列ackqueue,消息确认模块通过监听统计模块确认队列ackqueue获取该消息,将本次推送存储到消息持久化数据库(msgdb),同时标记成功标识;

步骤g:5分钟后,确认消息队列confirmqueue的消息过期,被转发到确认消息死信队列deadconfirmqueue,消息确认模块通过监听确认消息死信队列deadconfirmqueue获取消息过期,并在消息持久化数据中查找是否已发送成功,若成功,则本次通信结束,若没有发送成功,则将消息存储到消息持久化数据库,同时标记未成功标识,并标记未成功次数;

步骤h:若没有发送成功,消息确认模块在等待10分钟后,通过定时任务,将未成功的消息,通过业务消息模块进行重试。

质量数据统计模块可能因计算复杂导致队列积压,最终导致statqueue中的消息超时。若发生超时,消息自动进入常规消息死信队列deadqueue,消息确认模块通过监听常规消息死信队列deadqueue获取到该消息,则将消息存储到消息持久化数据库(msgdb),同时标记该条数据消费未成功标识,并标记未成功次数;

消息确认模块在等待10分钟后,通过定时任务,将未成功的消息,通过业务消息模块进行重试;

消息超过设定次数都未成功,则不再通过定时任务重试,等待人工处理。

尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

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