Используя опрос, как показано ниже, чтобы проверить, изменилось ли содержимое файла, другие две функции называются
var poll_max_date=AsyncPolling(function (end,err) { if(err) {
console.error(err); } var stmp_node_id=fs.readFileSync(path.join(__dirname,'node_id'),"utf8");
console.log("--------loaded node : "+stmp_node_id);
if(druid_stmp_node_id!=stmp_node_id) {
// MAX DATA CUT-OFF DRUID QUERY
druid_exe.max_date_query_fire();
// // DRUID QUERY FOR GLOBAL DATA
druid_exe.global_druid_query_fire();
druid_stmp_node_id=stmp_node_id; }
end(); }, 1800000).run();//30 mins
Некоторое время работает нормально, но затем становится ниже ошибки, как через 4-5 часов:
events.js: 167
бросить эр; // необработанное событие error
^
Ошибка: прочитайте ECONNRESET
в TCP.onStreamRead (internal / stream_base_commons.js: 111: 27) Отправлено событие «error» в:
в emitErrorNT (внутренний / streams / destroy.js: 82: 8)
at emitErrorAndCloseNT (internal / streams / destroy.js: 50: 3)
попытался использовать fs.watch для отслеживания изменений в файле вместо опроса, как показано ниже:
let md5Previous = null; let fsWait = false;
fs.watch (dataSourceLogFile, (событие, имя файла) => {if (имя файла) {
if (fsWait) return;
fsWait = setTimeout(() => {
fsWait = false;
}, 1000);
const md5Current = md5(fs.readFileSync(dataSourceLogFile));
if (md5Current === md5Previous) {
return;
}
md5Previous = md5Current;
console.log(`${filename} file Changed`);
// MAX DATA CUT-OFF DRUID QUERY
druid_exe.max_date_query_fire();
// DRUID QUERY FOR GLOBAL DATA
druid_exe.global_druid_query_fire(); } });
Некоторое время он тоже работает нормально, но затем выдает ту же ошибку, что и после 4-5 часов:
events.js: 167 throw er; // Необработанное событие 'error' ^
Ошибка: прочитать ECONNRESET в TCP.onStreamRead
(internal / stream_base_commons.js: 111: 27) Отправлено событие «error» в: at
emitErrorNT (внутренний / streams / destroy.js: 82: 8) в emitErrorAndCloseNT
(внутренний / Струйные / destroy.js: 50: 3) * * одна тысяча двадцать восемь
Но при запуске на локальной машине все работает нормально. ошибка возникает только при запуске на удаленной машине Linux.
кто-нибудь может мне помочь, как я могу решить эту проблему?