liurunyu
2024-09-10 4da45373f0b9841c0362a9a0298a6d917ff52527
完善代码,修改日志文件大小解析bug
3个文件已修改
15 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataDecoder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpUnit.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/DataDecoder.java
@@ -90,7 +90,7 @@
                //断包了
                return false ;
            }else if(dataStatus.isCompleted() || dataStatus.isAdjoined()){
                //本包数据已经全部接收,并且可能粘有下包数据
                //本包数据已经全部接收,或可能粘有下包数据
                this.nextDeal(in, dataStatus.getDataLen(), out) ;
                if(dataStatus.isAdjoined()){
                    //说明粘包了,还有数据,需要对这些数据再次执行doDecode_方法.
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpUnit.java
@@ -95,16 +95,19 @@
            //得到网络 通信数据过滤器链
            DefaultIoFilterChainBuilder chain = acceptor.getFilterChain() ;
            //编解码过滤器
            //生成编解码过滤器工厂类
            dataCodecFactory = new DataCodecFactory(this.adapter) ;
            //设置“protocol”,加入编解码过滤器,过滤器在IoProcessor线程中执行
            chain.addLast("protocol", new ProtocolCodecFilter(dataCodecFactory));
            
            /*
             * 一般ExecutorFilter 都要放在ProtocolCodecFilter 过滤器的后面,
             * 也就是不要让编解码运行在独立的线程上,而是要运行在IoProcessor 所在的线程,
             * 因为编解码处理的数据都是由IoProcessor 读取和发送的,没必要开启新的线程,
             * 否则性能反而会下降。一般使用ExecutorFilter 的典型场景是将业务逻辑(譬如:耗时的数据库操作)
             * 也就是让编解码运行在IoProcessor所在的线程,因为编解码处理的数据都是
             * 由IoProcessor读取和发送的,没必要开启新的线程,否则性能反而会下降。
             * ExecutorFilter过程器会启动一个线程池,处理后续代码逻辑。
             * 一般使用ExecutorFilter的典型场景是将业务逻辑(譬如:耗时的数据库操作)
             * 放在单独的线程中运行,也就是说与IO 处理无关的操作可以考虑使用ExecutorFilter 来异步执行。
             * 本处用法,使ExecutorFilter线程池中的线程处理IOHandler(TcpIoHandler)操作
             */
            chain.addLast("exceutor", new ExecutorFilter());
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -284,7 +284,7 @@
            //RTU日志文件存储目录(相对目录)
            resVo.rtuLogDir = conf.getSetAttrTxt(doc, "config.resource", "rtuLogDir", null, false, null) ;
            //RTU日志文件最大字节数(KB)
            resVo.rtuLogFileMaxSize = conf.getSetAttrPlusInt(doc, "config.resource", "rtuLogFileMaxSize", null, 100000, 2000000, null) ;
            resVo.rtuLogFileMaxSize = conf.getSetAttrPlusInt(doc, "config.resource", "rtuLogFileMaxSize", null, 10, 2000000, null) ;
            //RTU日志文件最大文件数
            resVo.rtuLogFileMaxCount = conf.getSetAttrPlusInt(doc, "config.resource", "rtuLogFileMaxCount", null, 1, 10, null) ;