Ruby Net :: FTP-Zeitüberschreitung Threads

8

Ich habe versucht, mehrere FTP-Downloads mit Thread-FTP-Verbindungen zu beschleunigen. Mein Problem ist, dass ich immer Threads hänge. Ich bin auf der Suche nach einem sauberen Weg entweder FTP zu sagen, es muss die FTP-Transaktion wiederholen, oder zumindest wissen, wenn die FTP-Verbindung hängt.

Im folgenden Code füge ich 5/6 separate FTP-Verbindungen ein, wobei jeder Thread eine Liste von Dateien enthält, die er herunterladen soll. Wenn das Skript abgeschlossen ist, hängen einige der Threads und können nicht verknüpft werden. Ich verwende die Variable @last_updated, um die letzte erfolgreiche Download-Zeit darzustellen. Wenn die aktuelle Zeit + 20 Sekunden @last_updated überschreitet, löschen Sie die verbleibenden Threads. Gibt es einen besseren Weg?

%Vor%     
Sean McCleary 04.08.2009, 22:10
quelle

1 Antwort

9

Der Trick für mich, der funktioniert hat, war, Timeout.timeout von Ruby zu verwenden, um sicherzustellen, dass die FTP-Verbindung nicht hängen blieb.

%Vor%

Das Hängen von FTP-Downloads führte dazu, dass meine Threads scheinbar hängen blieben. Jetzt, da die Threads nicht mehr hängen, kann ich den richtigen Umgang mit Threads verwenden:

%Vor%

und nicht das Hässliche:

%Vor%     
Sean McCleary 05.08.2009, 00:38
quelle

Tags und Links