Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

readline读取文件流的问题

$
0
0

readline 读取数据流的过程中 文件被mv重新生成了 然后我使用了start 和end参数 会出错么 需求是这样的:日志收集系统会在每小时开始的时候把日志mv改名 我需要每小时解析一次日志的数据。但是如果我解析的时候是从每小时的30分钟开始的,那么我解析时候比如是50分,那后十分钟的数据是不是就缺失了,但是如果解析从50分以后开始这样,到整点了,日志被mv走了,我还是会缺一些数据。有什么好办法呢

//将stream给readLine流处理
                var objReadline = readLine.createInterface({
                    input: fs.createReadStream(log_path, {start: parseInt(start_Bytes), end: parseInt(end_Bytes)})
                });
                objReadline.on('line', function (line) {
                    pipeLine(line);
                    if(index== CONFIG.log_public_max){
                        objReadline.removeAllListeners('line');
                    }
                    index++;
                }).on('close', function () {
                    redis.set(cahce_seek_index, end_Bytes);
                    redis.expire(pub_queue_android_key,3600);
                    redis.expire(pub_queue_ios_key,3600);
                    console.log("[" + utils.getDatetimeNow() + '] 作业完成,此次任务解析日志行数:' + index);
                    callback(null, true);
                });

Viewing all articles
Browse latest Browse all 14821

Trending Articles