J'ai écrit ce script afin d'extraire les métadonnées des données sur ftp spécifique puis de l'enregistrer dans un répertoire spécifique et j'attends un temps aléatoire et d'extraire à nouveau etc ... Donc il y a 2 points: : pour extraire du ftp spécifique Deuxièmement: pour l'enregistrer et attendre un temps aléatoire qui dépend du ftp utilisé.Redémarrer le thread après exception sur Python
Parfois j'ai un problème de timeout de ftp. Quand cela se produit, il n'y a plus d'extraction, de sauvegarde ou d'attente du thread. Les autres threads continuent de fonctionner jusqu'à ce qu'ils rencontrent un problème de timeout aussi.
J'ai essayé d'attraper une exception afin de "redémarrer" le thread concerné par le problème du délai d'attente ftp. Mais rien ne change.
Quelqu'un s'il vous plaît peut m'aider à trouver un moyen de "redémarrer" le fil?
Un grand merci de
class ftp_id(Thread):
def __init__(self, ftpID):
Thread.__init__(self)
self.ftpID = ftpID
def run(self):
while True:
with verrou:
siteID = self.ftpID
directory = str(datetime.now())[:-16].replace('-', '')
filename = siteID + '_' + str(datetime.now())[:-7].replace(':', '').replace(' ', '_').replace('-', '') + '.txt'
dictstr = myExtract(siteID)
myWriteFile(directory, filename, dictstr)
pendingtime = myWaiting(siteID, dictstr)
time.sleep(pendingtime)
except :
self.stop = True
self.stop = False
self.start()
self.join()
thread_01 = ftp_id("ftp-01")
thread_02 = ftp_id("ftp-02")
thread_03 = ftp_id("ftp-03")
thread_04 = ftp_id("ftp-04")
thread_01.start()
thread_02.start()
thread_03.start()
thread_04.start()
thread_01.join()
thread_02.join()
thread_03.join()
thread_04.join()
Il ne jette une exception? Pourquoi n'avez-vous pas le bloc 'try-except' dans votre boucle' while '? –