Nodejs не может одновременно получить доступ к файлу из двух приложений - PullRequest
0 голосов
/ 30 мая 2019

У меня есть два приложения nodejs. Один из них - запись логов в файл с использованием вращающегося потока файлов. Второе приложение должно использовать эти журналы и обрабатывать их, читая файл журнала по мере его изменения. В основном я пытаюсь настроить сырую очередь на основе диска. Проблема, с которой я сталкиваюсь, заключается в том, что приложение-потребитель не может просматривать журналы, пока поток из приложения-производителя не будет закрыт.

В этом потребительском приложении я попробовал fs.watch, chokidar и tail (я даже не получаю событие change). Однако, когда я попытался запустить 'tail -f' на терминале, который может сразу же принять изменения.

1 Ответ

0 голосов
/ 31 мая 2019

Из того, что я обнаружил, кажется, что это проблема, связанная с платформой, в моем случае это macOS. Использование fs.watchFile вместо fs.watch решило проблему. К счастью, библиотеки, которые я использую (chokidar и tail), предоставляют флаги API для этого.

...