私はある時点で同じことを並行して行うさまざまなサブプロセスに分割するパイプラインを持っています。したがって、それらの出力は同じファイルに入れなければなりません。2つのPythonスクリプトが同じファイルに書き込む場合はどうなりますか?
これらのプロセスのすべてが同じファイルに書き込む必要があると言うのは危険ですか?または、このリソースが占有されていると見たら、Pythonは試して再試行しますか?
私はある時点で同じことを並行して行うさまざまなサブプロセスに分割するパイプラインを持っています。したがって、それらの出力は同じファイルに入れなければなりません。2つのPythonスクリプトが同じファイルに書き込む場合はどうなりますか?
これらのプロセスのすべてが同じファイルに書き込む必要があると言うのは危険ですか?または、このリソースが占有されていると見たら、Pythonは試して再試行しますか?
一般的に、これは良い考えではなく、正しい方向に注意する必要があります。書き込みはシリアル化する必要があるため、スケーラビリティにも悪影響を与える可能性があります。
ファイルを別々にしてマージすることをお勧めします(または、別々のファイルとして残しておくことをお勧めします)。
これはシステムによって異なります。 Windowsでは、リソースがロックされ、例外が発生します。 Linuxでは、あなたが共有リソースへのアクセスを同期するためにセマフォを使用する必要があるような場合には理想的には、2つのプロセス(書き込まれたデータが混在することができる)
でファイルを書き込むことができます。セマフォを使用すると、ニーズに重すぎる場合には、唯一の選択肢は、別々のファイルに書くことである
...
編集:a later postに目で指摘したように、リソースマネージャはに別の代替であります同時作成者の処理
すべての異なるプロセスが出力をキューに書き込む方法と、そのキューを読み込んでファイルに書き込むプロセスが1つありますか?
大丈夫!スケーラビリティにはどのような影響がありますか?突然多くのプロセスが同じファイルに書き込んでお互いを保持したいのであれば? – dmeu
@dmeu:それは基本的にそれです。複数のプロセスが同時に書き込みをしたい場合、そのうちの1つだけが可能になり、残りは有益な作業ではなく待機するだけです。 – NPE