Forum Programmation.python PYTHON - UNRAR : établir un Thread pour surveiller un Process

Posté par  . Licence CC By‑SA.
Étiquettes :
0
5
mar.
2019

Bonjour à toutes et à tous,

Je publie cette discussion car je suis confronté à un problème. En effet, je débute sur python et j'aimerai avoir de l'aide sur du Threading.
Je développe actuellement un script automation pour ce connecter à un FTP, naviguer vers des dossiers et télécharger les fichiers.
Cette partie est en effet terminer mais j'aimerai pouvoir effectuer un thread afin de vérifier toutes les 20min si le téléchargement ne se déroule sans accrocs.

voici mon code de download:

class Download:    
  def __init__(self):
    self.path="FolderFiles"
    self.target=" /var/www/folder/Output"


  def downloadFile(self):
    for root, dirs, files in os.walk(self.path, topdown=False):
      for name in files:
        print(name)
        rarFiles=os.path.join(root, name)
        unrar = "unrar x -y "+rarFiles+self.target
      os.system(unrar)
      # time.sleep(10) 

PS: Si vous avez d'autres propositions autre que le Thread je suis aussi à l'écoute Smiley smile
Merci de votre aide

  • # erreur d'algoritme

    Posté par  . Évalué à 2.

    il se passe quoi si le telechargement prend moins de 20 min ?
    il se passe quoi si le telechargement est OK, mais apres 25 minutes ?

    comment verifies-tu que le telechargement est OK ?

    finalement, il ne faut pas oublier qu'un script d'automatisation, ce n'est guere que "faire faire à la machine ce que tu ferais à la main".

    • [^] # Re: erreur d'algoritme

      Posté par  . Évalué à 1.

      Bonjour NeoX,

      Le cas est le suivant:

      Le téléchargement de mes données prendra énormément de temps et j'aimerai faire un système de vérifications pendant le téléchargement que tout ce passe sans problème.
      Ce sont des données qui pèse > 1To

      • [^] # Re: erreur d'algoritme

        Posté par  . Évalué à 3.

        faut changer de protocole,

        tant que le transfert n'est pas terminé tu ne peux pas savoir si ton fichier est complet ET correct

        pour cela il a été inventé les transferts par blocs, avec des parités, qui permettent de verifier chaque bloc independamment des autres…

        mais pour cela il faut decomposer ton volume >1To en fichiers plus petits

        bref il te faut revoir tes concepts, reanalyser les besoins, pour trouver les bons outils

        exemple les fichiers PAR
        https://file.org/extension/par

        • [^] # Re: erreur d'algoritme

          Posté par  (site web personnel) . Évalué à 4.

          En complément, les fichiers PAR2 (format suivant de Parchive) permettent aussi, en contrepartie d'un peu plus de volume échangé, de reconstruire un des blocs (identifié comme invalide ou carrément manquant) à partir des autres. Ça a été (et c'est encore probablement) utilisé sur Usenet pour le partage de fichiers binaires volumineux.

          Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

          • [^] # Re: erreur d'algoritme

            Posté par  . Évalué à 1. Dernière modification le 06 mars 2019 à 11:21.

            Bonjour Lolop,

            Les fichiers de plus d'1To sont stockés en plusieurs fichiers RAR de la taille entre 100 et 200Go.
            Donc le multipart est effectué sur le fichier.

            • [^] # Re: erreur d'algoritme

              Posté par  . Évalué à 2.

              plusieurs RAR ou .rar pour le premier, .r01 pour le 2e, .r02 etc ?

              car si ce sont des RAR independants, tu peux tester le fichier rar, et avoir un code d'erreur ou de validation pour chacun

              si ce sont des rar splités (.rar, .r01, .r02) tu ne pourras faire le test qu'à la fin quand tous les morceaux seront recus

              • [^] # Re: erreur d'algoritme

                Posté par  . Évalué à 1. Dernière modification le 06 mars 2019 à 14:24.

                Oui le fichier est splité en plusieurs parties, donc comme tu dis, je ne peux que tester à la fin du script…
                Donc je vais revoir mon protocole

                Merci bien

                • [^] # Re: erreur d'algoritme

                  Posté par  . Évalué à 2.

                  sinon plus que FTP, tu as des protocoles qui permettent de reprendre ou ca s'est arrété, de ne transferer que ce qui a changé…

                  rsync par exemple

  • # other way

    Posté par  . Évalué à 1.

    Après de nombreux tests, j'ai décidé de travailler de cette façon : analyser les fichiers après téléchargement en fonction de la taille, du temps de téléchargement, etc…
    La bibliothèque unrar ne peut fournir aucune solution pour tester le bon déroulement du téléchargement pendant le process.

    Merci pour votre aide

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.