跟踪文件
Keeping track of files
我在管理文件时遇到问题。我有一些每天都会更新的内容,我想从一些文件中解析数据。但是我遇到的问题是我不想触及我已经做过的文件。我怎样才能跟踪已经完成的事情以及下次从哪里开始。使用节点
假设文件在本地文件系统上。
1.读取lastModifiedTime。
2. 任何时候 lastModifiedTime 不同于之前的文件 lastModifiedTime 更新 lastModifiedTime 然后解析和读取文件
运行 定期执行第 2 步。 (代码中为 60 秒)
var fs = require("fs");
var filePaths = ['file_name_1', 'file_name_2'];
var mtimes = {};
var reloadTimes = 60000;
var execFunction = function(){
for(var i = 0; i < filePaths.length; i++) {
parseFile(filePaths[i], mtimes[filePaths[i]]);
}
};
setInterval(execFunction, reloadTimes);
var parseFile = function(fileName, lastModifiedTime) {
fs.stat(fileName, function(err, fd) {
if(lastModifiedTime == undefined || fd.mtime.getTime() !== lastModifiedTime.getTime()) {
mtimes[fileName] = fd.mtime;
// read the file and parse it
}
});
};
execFunction();
我在管理文件时遇到问题。我有一些每天都会更新的内容,我想从一些文件中解析数据。但是我遇到的问题是我不想触及我已经做过的文件。我怎样才能跟踪已经完成的事情以及下次从哪里开始。使用节点
假设文件在本地文件系统上。 1.读取lastModifiedTime。 2. 任何时候 lastModifiedTime 不同于之前的文件 lastModifiedTime 更新 lastModifiedTime 然后解析和读取文件
运行 定期执行第 2 步。 (代码中为 60 秒)
var fs = require("fs");
var filePaths = ['file_name_1', 'file_name_2'];
var mtimes = {};
var reloadTimes = 60000;
var execFunction = function(){
for(var i = 0; i < filePaths.length; i++) {
parseFile(filePaths[i], mtimes[filePaths[i]]);
}
};
setInterval(execFunction, reloadTimes);
var parseFile = function(fileName, lastModifiedTime) {
fs.stat(fileName, function(err, fd) {
if(lastModifiedTime == undefined || fd.mtime.getTime() !== lastModifiedTime.getTime()) {
mtimes[fileName] = fd.mtime;
// read the file and parse it
}
});
};
execFunction();