0

Für diese Frage simplictly, habe ich zwei Arten von Computern: Typ A und B.
Es gibt einen Computer vom Typ A, und viele von Typ B.Reader Writer Sperre mit Vorliebe für Writers

B sind von Hosts, die und lesen von ftp schreiben kann. A ist ein Computer, der nur von ftp lesen kann.

Wie Sie vielleicht bereits erraten haben, ist ftp der gemeinsame Bereich, der durch Leser-Writer-Lock-Lösung geschützt werden muss.

Bekommt jemand eine bereits existierende python package, die dieses Szenario behandeln, wenn nicht, hat jemand ein Beispiel, wie kann es für solche Notwendigkeit implementiert werden?

Ich denke, dass einige Sperren als Dateien auf ftp implementiert werden sollten, da es sich um Prozesse von verschiedenen Hosts handelt.

Dank

+0

einige Programme verwenden einfache Datei wie '.lock' (manchmal mit einigen Informationen wer Ressourcen verwendet). Wenn die Datei nicht existiert, können Sie sie erstellen und Ressourcen verwenden. – furas

+0

@furas: Kennen Sie bereits Pakete oder Implementierungen? – JavaSa

Antwort

0

Verfasser:

  1. eine Datei W. hochladen Wenn dies nicht gelingt, warten und erneut versuchen.
  2. Laden Sie eine Datei R hoch. Wenn dies fehlschlägt, warten Sie und versuchen Sie es erneut.
  3. Schreiben Sie so viele Schreibvorgänge wie gewünscht.
  4. entfernen
  5. W.
  6. R.

Reader entfernen:

  1. eine Datei R. hochladen Wenn dies nicht gelingt, warten und erneut versuchen.
  2. Überprüfen Sie das Vorhandensein einer Datei W. Wenn es existiert, entfernen Sie R und kehren Sie zu Schritt 1 zurück.
  3. Lesen Sie einen. Wenn mehrere nötig sind, um liest, Rückkehr 2.
  4. entfernen R.

Sie das Python-Modul kann zu Schritt ftplib (oder für SFTP, paramiko) die obigen Operationen zu implementieren.

+0

Wir müssen den Zugriff auf die Sperrdateien beschränken, da es möglich ist, dass ein Prozess die Sperre entfernen möchte, während gleichzeitig eine andere dieselbe entfernen möchte. Wir brauchen hier einige Thread-/Prozesssicherheit, irgendwelche Ideen, wie man das implementiert, um Rennbedingungen mit ftplib oder anderen Paketen für die Handhabung von ftp zu vermeiden? – JavaSa

+0

@JavaSa: Ich verstehe nicht, was du meinst. Ich skizzierte eine vollständige Sequenz für die Beschaffung und Freigabe von Sperren. Das Dateisystem lässt nicht zu, dass zwei verschiedene Programme dieselbe Datei erstellen. –

Verwandte Themen