Wie kann ich von mehreren Perl verwendeten Programmen Verwendung einer gemeinsam genutzten Ressource verwalten?

StackOverflow https://stackoverflow.com/questions/1210885

  •  06-07-2019
  •  | 
  •  

Frage

Ich bin für eine gute Möglichkeit, den Zugriff auf einen externen FTP-Server aus verschiedenen Programmen auf einem einzigen Server zu verwalten. Zur Zeit arbeite ich mit einer Lock-Datei, so dass nur ein Prozess den FTP-Server zu einer Zeit verwenden kann. Was wäre ein guter Weg, um 2-3 parallele Prozesse zu ermöglichen, gleichzeitig den FTP-Server zugreifen zu können. Leider hat der Anbieter nicht mehr Sitzungen ermöglichen und sperrt mein Konto für einen Tag, wenn zu viele Prozesse ihre Server zugreifen. Gebrauchte Plattformen Solaris und Linux - alle FTP-Zugriff wird in einer einzigen Bibliothek verkapselt somit nur 1 Funktion, die ich ändern müssen. Wäre schön, wenn es etwas auf CPAN ist.

War es hilfreich?

Lösung

ich in perlipc aussehen würde (1) für SystemV Semaphore oder Module wie POSIX :: RT :: Semaphore für Posix-Semaphore. Ich würde eine Semaphore mit einer Ressource Zahl von 2-3 erstellen und dann in dem anderen Prozess versuchen, die Semaphore zu erhalten.

Andere Tipps

Statt eine Reihe von Programmen zu machen in der Schlange warten, könnten Sie ein lokales Programm erstellen, das alle Remote-Kommunikation behandelt, während die lokalen Programme es gesprochen? Sie effektiv einen Proxy erstellen und diese Komplexität drücken aus Ihren Programmen entfernt, so dass Sie damit nicht in jedem Programm zu tun haben.

Ich weiß nicht, die anderen Einschränkungen für Ihr Problem, aber das hat sich für mich auf ähnliche Probleme gearbeitet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top