2011-03-30 11 views
0

This投稿は、通常のファイルにファイル書き込みロックを設定する方法を説明しています。yamlファイルにロックを書き込みますか?

しかし、yamlファイルにロックを設定することは可能ですか?一度に1つのスクリプトしか書き込めませんか?

私はYAML::Syckを使用していますが、それは違いがあります。

答えて

1

flockを使用してファイルをロックできます。 flockがファイルハンドルで動作するため、まずファイルを開く必要があります。
また、CPANのLockFile::Simpleを使用することもできます。

+0

yamlファイルをflockでロックするにはどうすればよいですか?それはファイルハンドルを必要としませんか? –

+0

@Sandra:YAML :: SyckのLoadFile()は、ファイル名またはファイルハンドルを受け取ります。関数を呼び出す前にファイルを開き、それを集めてハンドルをLoadFileに渡します。ただし、他のプロセスがflockを使用しない限り、他のプロセスがファイルを読み書きすることはできません。 – runrig

1

他にも述べたように、flockを使用してください。また、「ファイルをロックする方法」のperlfaq5を参照してください。

実際には.yamlファイルをロックする必要はないので、それはとにかくアドバイザリロックであることに注意することが重要です。ロックファイル(おそらくyourfile.yaml.lock)をロックし、完了したらロックを解除することができます。

これにより、排他性を1つのファイルに制限するのではなく、「この操作ブロックに排他アクセスが必要です」と言うことができます。

関連する問題