一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

SN号段高速打印防重方法、计算机设备及存储介质与流程

2023-02-06 10:34:33 来源:中国专利 TAG:

sn号段高速打印防重方法、计算机设备及存储介质
技术领域
1.本发明涉及工业生产领域sn号段高速打印技术领域,具体涉及一种sn号段高速打印防重方法、计算机设备及存储介质。


背景技术:

2.数据库主从架构的主从复制是一个异步的复制过程。就是一台或多台数据库(slave,即从库)从另一台数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。在单机应用的时候看起来没有问题,但是,在企业的生产环境中,在很多情况下都会有复制延迟的问题。如:
3.1)、在某些部署环境中,从库所在的机器性能要比主库所在的机器性能差。此时,如果机器的资源不足的话,就会影响从库同步的效率;
4.2)、从库充当了主库,一般情况下,主要写的压力在于主库,那么从库会提供一部分读的压力,而如果从库的查询压力过大的话,从库的查询消耗了大量的cpu资源,那么必不可少的就会影响同步的速度;
5.3)、大事务执行,如果主库的一个事务执行了10分钟,而binlog的写入必须要等待事务完成之后,才会传入从库,那么,此时在开始执行的时候就已经延迟了;
6.4)、当主库的tps并发非常高的时候,产生的ddl数量超过了一个线程所能承受的范围的时候,那么也可能带来延迟。
7.这些情形均会导致主从数据库存在特定时间内的数据不一致的情况。
8.工业生产系统数据库架构可能会使用主从架构及读写分离技术,存在高并发场景,在数据高速写入的同时即会出现上述四种情况,特别是上述情况4)中tps并发非常高的情况,而产生数据同步延时。


技术实现要素:

9.为了解决上述背景技术中提出的问题,本发明的目的在于提供一种sn号段高速打印防重方法、计算机设备及存储介质,采用redis缓存数据库的单线程的特性,将redis缓存数据库作为数据校验节点,判断主、从数据库是否一致,从业务逻辑层面解决工业生产系统中数据库主从架构且读写分离状态下sn号段高速打印号段重复的问题。
10.为实现上述目的,本发明提供如下技术方案:
11.一种sn号段高速打印防重方法,在读写分离架构中实施,具体步骤如下:
12.步骤s100:sn号段打印完成后,将完成数据写入缓存数据库;
13.步骤s200:写入缓存数据库成功后,再写入写数据库;
14.步骤s300:数据库同步,写数据库将已打印数据同步到读数据库;
15.步骤s400:sn号段打印请求查询读数据库中未打印数据;
16.步骤s500:读数据库返回未打印数据;
17.步骤s600:未打印数据一致性判断;读数据库返回未打印数据后,再与redis缓存
100号段是否打印),此时,m数据库的数据(0-100号段已打印完成)还未完全同步到n数据库,从而导致b请求未查询到最新数据(0-100号段已打印完成),还是老数据(0-100号段未打印),此种,情况下就发生了标签重打。
40.一般业务场景,如果发生数据延迟可以重复请求刷新来解决业务问题,但是标签条码如果打印重复,则好比一个人的身份证号出现了重复,无法唯一确认,会导致产品无法唯一确定,在生产上是一种非常严重的事故。
41.解决行业内有存在减少延时的各种方法,可以通过如下方式:
42.a1)、业务的持久化层的实现采用分库架构,让不同的业务请求分散到不同的数据库服务上,分散单台机器的压力;
43.a2)、使用更好的硬件设备,比如cpu,ssd等,但是这种方法一般对于公司而言不太能接受,原因也很简单,会增加公司的成本;
44.a3)、从库配置方面修改相关配置参数来提高数据同步效率,或者防止数据丢失。
45.但是,这些方式仅仅是减少或者缩短了数据同步时的延时时间,并没有完全消除数据同步延时,而且有些情况对系统硬件进行改造升级成本非常高,可能会影响其他业务场景的数据存储,需要进行整套系统的性能测试。
46.在另一个优化的实施例中,如图3所示,一种sn号段高速打印防重方法,在读写分离架构中实施,具体步骤如下:
47.步骤s100:sn号段打印完成后,将完成数据写入redis缓存数据库;
48.步骤s200:写入redis缓存数据库成功后,再写入写数据库;
49.步骤s300:数据库同步,写数据库将已打印数据同步到读数据库;
50.步骤s400:sn号段打印请求查询读数据库中未打印数据;
51.步骤s500:读数据库返回未打印数据;
52.步骤s600:未打印数据一致性判断;读数据库返回未打印数据后,再与redis缓存数据库中的数据进行比对,判断读数据库所返回的未打印数据是否已打印;
53.步骤s700:处理返回结果,若未打印,则执行打印任务;若已打印,则进行系统提示返回已打印,防止重复打印。
54.为使本发明的目的、技术方案方法和优点更加清楚,下面结合附图4对上述实施例中的一种sn号段高速打印防重方法进行运用。
55.同样,在读写分离架构中m数据库为写数据库,n数据库为读数据库。
56.a请求的数据(0-100号段号已打印完成)先将数据写入redis缓存数据库中,写入redis缓存数据库成功后再写入m数据库。假定写入m数据库的数据同步到n数据库需要10ms,在数据同步的过程中b请求发送查询请求(0-100号段是否打印),先读取redis缓存数据库中的最新数据,同时,b请求由于读写分离技术查询n数据库,此时,如果m数据库的数据(0-100号段已打印完成)还未完全同步到n数据库。导致b请求未查询到最新数据(0-100号段已打印完成),还是老数据(0-100号段未打印)。当n数据库中数据返回时会进行数据一致性判断,将redis缓存数据库中的数据与n数据库取到的数据对比,如果不一致说明n数据库中数据不是最新的,返回异常信息,故可以防止号段标签重打。
57.将redis缓存数据库作为数据校验节点,来解决读写数据同步延时导致的数据短暂不一致,导致sn号段重复打印的问题,此问题只有读写分离状态下的sn号段高速打印才
会发生,低速打印状态下不存在该问题。
58.在一个可能的实施例中,一种计算机设备,包括存储器、处理器以及存储在存储器中并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现上述一种sn号段高速打印防重方法的步骤。
59.在一个可能的实施例中,一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现一种sn号段高速打印防重方法的步骤。
60.本发明利用redis缓存数据库单线程的技术特征,在sn号段打印数据获取速度高于读、写数据库同步速度时,将redis缓存数据库作为数据是否最新的校验节点,能够有效防止sn号段数据重复打印。
61.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献