Чтение файла в режиме реального времени с использованием Node.js
Мне нужно найти лучший способ для чтения данных, которые записываются в файл, с использованием node.js, в режиме реального времени. Проблема в том, что Node - это быстро движущийся корабль, который затрудняет поиск лучшего способа решения проблемы.
What I Want To Do
У меня есть процесс Java, который делает что-то, а затем записывает результаты этой вещи в текстовый файл. Обычно это занимает от 5 минут до 5 часов, когда данные записываются все время, и может достигать довольно высокой пропускной способности (около 1000 строк / сек).
Я хотел бы прочитать этот файл в режиме реального времени, а затем, используя узел, объединить данные и записать их в сокет, где они могут быть отображены на клиенте.
Клиент, графики, сокеты и логика агрегации - все готово, но я не совсем понимаю, как лучше читать файл.
What I Have Tried (or at least played with)
FIFO
- Я могу сказать моему Java-процессу записать в fifo и прочитать это, используя узел, на самом деле это то, как мы в настоящее время реализуем это, используя Perl, но, поскольку все остальное работает в узле, имеет смысл перенести код поверх.
Unix Sockets
- Как указано выше.
fs.watchFile
- это будет работать для того, что нам нужно?
fs.createReadStream
- это лучше, чем watchFile?
fs
& Амп;tail -f
- похоже на взломать.
What, actually, is my Question
Я склоняюсь к использованию Unix Sockets, это кажется самым быстрым вариантом. Но есть ли у узла лучшие встроенные функции для чтения файлов из фс в режиме реального времени?