複数のNode.jsプロセスが同じファイルへの書き込みをfs.createWriteStream
で実行すると、データを上書きしないようにシステムを実装する方法はありますか。 fs.createWriteStreamのデフォルトの設定は、そのメソッドが呼び出されたときにファイルが消去されるように見えます。私の目標は、ファイルを一度消去してから、他のすべてのライターにデータを追加させることです。複数のプロセスにわたるfs.createWriteStream
fs.createWriteStream
を使用し、次にfs.appendFile
を使用しますか?または、ファイルを開く最初のプロセスだけでなく、各プロセスのストリームを開く方法がありますか?
仲介業者を使用してログ書き込みを委任したことはありますか? syslog、第三者ロギングサービス、または(udpやunixソケットなどの)受信ログ要求をファイルに書き込む専用ノードプロセスなど。 – mscdex
ええ、それは良い観察ですが、実際には私はおそらくそれを行う必要があるでしょう。私は、各子プロセスがファイルに直接パイプするのがより効果的であると考えています。ただし、ファイルのデータが破損し、データが順不同になる可能性がありますか?ですから、stderr(問題のデータ・ストリームです)を単一の親node.jsプロセスにパイプし、そのプロセスがファイルにデータを書き込みます。親procがボトルネックになることは少ないが、おそらく上手くいく。 –