バックグラウンド -
node.js と fs モジュールを使用して、ファイルを監視し、ファイルに追加された行を検出するという最終目標を達成しようとしています。
現在の実装 -
私は現在、fs.watchを使用してファイルへの変更を永続的に監視し、fs.readFileを使用して監視がトリガーされたらファイルを読み取ります。
欠点 -
この実装の欠点は、特に、追加された行のみに関心があるにもかかわらず、ファイルの内容全体を読み取る必要があるため、この方法で追加された行を導出するのは計算コストが高く、時間がかかることです。
理想的なソリューション -
代わりにfs.createReadStreamを使用して、ファイルを最後まで読み取り、最後にファイル記述子を残し、ファイルが追加されたら再度読み取りを開始したいと思います。
ストリーム バッファの内容を読み取る 2 つの方法を見つけましたが、どちらの実装でもreadable.read()とreadable.on('data',...)が存在すると、ストリームは終了したようです。ストリームは閉じられていませんが、読み取るデータはもうありません。readable.resume()は何もしないように見えるため、終了したストリームを引き続き使用する方法が正確にはわかりません。
私の質問 -
ファイルが変更されるとトリガーされる方法で、ファイルから追加された行を読み取るにはどうすればよいですか? 私の理想的なソリューションは正しい方向に進んでいますか?
お時間をいただき、ありがとうございました。