同じファイルを更新する2つのスクリプトがあります。どちらも同時に実行できます。ファイルの一貫性のない更新を防止するにはどうすればよいですか?言い換えれば、ファイルへのアクセスをシリアル化する方法は?プロセス間アクセスの同期化のための共通ファイルの更新
質問を教えてください。シェルフファイルがあり、それを更新するスクリプトが2つあるとします。スクリプト1は、この処理を行います。
import shelve
sf = shelve.open('some_file')
sf[key1] = data1
sf.close()
スクリプト2は、次のコードを持っています
import shelve
sf = shelve.open('some_file')
sf[key2] = data2
sf.close()
スクリプト1がファイルを開いた後と仮定スクリプト2が予定されています。スクリプト2が完了し、制御がスクリプト1に戻ると、スクリプト1はその更新を行い、ファイルを閉じます。これにより、スクリプト2のアップデートが失われることになります。これが起こらないようにして、両方の更新がファイルに行われるようにするには?
は、それが標準ライブラリを使用して行うことができます? 'マルチプロセシング'モジュールでロック機能を使用できますか? – debashish
'redlock'は明示的にファイルをロックしません。リソース(ファイル)を表す文字列にロックを作成します。しかし、それは仕事をします。 – debashish