Czytanie pliku w czasie rzeczywistym za pomocą Node.js
Muszę wypracować najlepszy sposób odczytu danych zapisywanych do pliku za pomocą node.js w czasie rzeczywistym. Problem polega na tym, że Node jest szybko poruszającym się statkiem, co utrudnia znalezienie najlepszej metody rozwiązania problemu.
Co chcę robić
Mam proces java, który robi coś, a następnie zapisuje wyniki tego, co robi w pliku tekstowym. Zwykle trwa od 5 minut do 5 godzin, a dane są zapisywane przez cały czas i mogą osiągnąć nawet dość dużą przepustowość (około 1000 linii na sekundę).
Chciałbym przeczytać ten plik w czasie rzeczywistym, a następnie za pomocą węzła agregować dane i zapisać je w gnieździe, gdzie można je zobrazować na kliencie.
Klient, wykresy, gniazda i logika agregacji są gotowe, ale jestem zdezorientowany co do najlepszego podejścia do odczytu pliku.
Co próbowałem (lub przynajmniej bawiłem się)FIFO
- Mogę powiedzieć mojemu procesowi Java, aby napisał do fifo i przeczytał to za pomocą węzła, tak naprawdę mamy to do czynienia z Perlem, ale ponieważ wszystko inne działa w węźle, sensowne jest przeniesienie kodu.
Unix Sockets
- Jak wyżej.
fs.watchFile
- czy to zadziała w przypadku tego, czego potrzebujemy?
fs.createReadStream
- czy to lepiej niż WatchFile?
fs
& tail -f
- Wygląda na hack.
Czym właściwie jest moje pytanie
Staram się korzystać z gniazd Unix, wydaje się to najszybszą opcją. Ale czy węzeł ma lepsze wbudowane funkcje do odczytywania plików z fs w czasie rzeczywistym?