У меня есть несколько независимых скриптов для чтения и записи из одних и тех же текстовых файлов.Я пытаюсь заблокировать текстовые файлы, пока модуль читает / пишет из них.В данный момент я использую пакет lockfile, но он не работает.например,
//lock file before reading
lockFile.lockSync("./Config/presetString.txt.lock",10000,100,10000,1000,100)
//read file
var preset = fs.readFileSync("./Config/presetString.txt", 'utf8');
//unlock file
lockFile.unlockSync("./Config/presetString.txt.lock",10000,100,10000,1000,100)
Однако, когда запущено много модулей, иногда возникает ошибка, которая останавливает все.В сообщении об ошибке указано, что файл .lock уже существует.Это кажется нелогичным - если файл .lock уже существует, то модулям следует подождать, пока он не будет существовать. С указанными выше параметрами модули должны повторить попытку доступа к блокировке 1000 раз, но это не работает.
Любые идеи о том, как это предотвратить?
Вот пример ошибки, которая выдается:
Error: EEXIST: file already exists, open './Config/presetString.txt.lock'