2 votes

Parallélisation de os.walk()

J'ai une grande structure de répertoires hébergée sur un périphérique de stockage en réseau que j'aimerais parcourir en utilisant la méthode suivante os.walk . Le système est plutôt lent, mais je pense que le processus pourrait être plus rapide si je pouvais interroger plusieurs répertoires en même temps (tous avec la même racine commune). Je ne me soucie pas de l'ordre dans lequel les résultats arrivent, du moment que j'ai tout analysé à la fin.

Je pense réimplémenter os.walk pour passer les nouveaux répertoires dans un pool de travailleurs. Je préférerais utiliser le code de quelqu'un d'autre s'il existe déjà (pourquoi réinventer la roue ?), mais je n'en ai pas trouvé.

Il s'agit sûrement d'une tâche courante ? Quelqu'un a-t-il déjà rencontré quelque chose de ce genre ? Peut-être que je manque quelque chose et que cela n'entraînerait pas d'accélération.

Si je n'obtiens pas de réponse dans une semaine environ, je posterai sans doute ma tentative ici.

1voto

Il semble que vous ayez besoin d'un système d'exécution de tâches distribuées. J'ai travaillé avec Gearman depuis un certain temps et je trouve que c'est un excellent cadre de travail. Si vous ne voulez pas commencer avec le module Thread de base, je vous le recommande. Il prend en charge les clients et les travailleurs écrits en Python, et peut donc répondre à vos besoins. Mais vous aurez peut-être encore besoin de faire le travail de division.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X