2017-01-25 12 views
0

この質問では単純に2種類のコンピューターがあります:タイプABです。
はタイプAの一台のコンピュータがあり、そしてB型の多くはライター優先のリーダーライターロック

Bは書くとftpから読み取ることができますホストのタイプです。 Aは、ftpから読み込むことができるコンピュータです。

あなたがすでに推測しているように、ftpは読者によって保護される必要がある共有領域です。

このシナリオを処理する既存のpython packageの誰かが知っている人はいませんか?そのようなニーズに対してどのように実装できるのでしょうか?

私たちは異なるホストのプロセスを扱っているので、いくつかのロックはftp上のファイルとして実装されるべきだと思います。

おかげ

+0

いくつかのプログラムは '.lock'のような単純なファイルを使います。ファイルが存在しない場合は、ファイルを作成してリソースを使用できます。 – furas

+0

@furas:すでにパッケージや実装について知っていますか? – JavaSa

答えて

0

脚本:

  1. はこれが失敗した場合、ファイルをアップロードW.待ってから再度試してください。
  2. ファイルRをアップロードします。これが失敗した場合は、待ってからもう一度お試しください。
  3. 必要なだけ多くの書き込みを行います。
  4. R.

リーダー削除W.

  • を削除します。

    1. これが失敗した場合は、ファイルをアップロードR.待ってから再度試しを。
    2. ファイルWの存在を確認します。存在する場合は、Rを削除して手順1に戻ります。
    3. 1つを読みますか?複数のが必要な場合は読み込み、2
    4. 段階に戻るR.

    を削除するあなたは、上記の動作を実装するためのPythonモジュールftplib(またはSFTPのため、paramiko)を使用することができます。

  • +0

    ロックファイルへのアクセスを制限する必要があります。あるプロセスがロックを削除したいと同時に、別のプロセスもロックを削除したい場合があるためです。 ここではスレッド/プロセスの安全性が必要です。ftplibを使用して競合状態を避けるために実装する方法や、ftpを扱うための他のパッケージが必要ですか? – JavaSa

    +0

    @JavaSa:あなたが何を意味するのか分かりません。私は、ロックの取得と解放のための完全なシーケンスの概要を述べました。ファイルシステムは、2つの異なるプログラムが同じファイルを作成することを許可しません。 –