2011-08-22 3 views
2

Ma question pourrait être assez vague. Je suis à la recherche d'une approche raisonnable pour effectuer ma tâche. J'ai développé une page web où l'utilisateur télécharge un fichier utilisé comme fichier d'entrée pour mon code développé en python. Lorsque le fichier d'entrée est soumis via la page Web, il est enregistré dans un dossier temporaire à partir duquel le démon le copie vers un autre emplacement. Ce que je veux, c'est chercher régulièrement les fichiers dans le dossier (peut écrire un démon) S'il trouve plus d'un fichier, il exécute le code en tant que tâches séparées avec les fichiers d'entrée dans le répertoire limitant à 5 processus en cours. en même temps et quand un processus se termine il commence le suivant s'il y a des fichiers dans le dossier (dans un ordre chronologique).multiprocessing en python

Je suis conscient du multitraitement en python mais je ne sais pas comment l'implémenter pour réaliser ce que je veux ou dois-je aller pour quelque chose comme XGrid pour gérer mes travaux. Le code prend généralement quelques heures à quelques jours pour terminer un travail. Mais les emplois sont indépendants les uns des autres.

+0

Je pense que vous n'avez pas besoin de multiprocessing * dans * Python, mais juste de lancer plusieurs processus Python simultanément, n'est-ce pas? – fortran

+2

Je ne pense pas qu'il est approprié de poser une question dont l'essentiel est "Comment puis-je faire cette tâche de programmation générale?" Si vous voulez de l'aide pour apprendre à faire une tâche de programmation générale, posez une série de questions spécifiques en commençant par ce que vous avez appris. Notez que cela nécessite que vous lisiez d'abord les documents et que vous commenciez votre code. Quand vous êtes accroché à quelque chose de spécifique, posez cette question spécifique. –

+1

J'ai un code que je peux lancer à partir de la ligne de commande donnant le fichier input comme argument. Je voulais des conseils et des directives avant d'essayer d'écrire un code pour faire mon travail. Je voulais aussi m'assurer que je pensais dans la bonne direction. – shash

Répondre

0

J'utilise une table SQL pour effectuer une telle chose, car mes utilisateurs peuvent lancer des dizaines de tâches ensemble si je ne les limite pas.

Lorsqu'un nouveau fichier apparaît, un démon écrit son nom dans le tableau (avec TousTrier d'autres informations telles que la taille, la date, l'heure, l'utilisateur, ...)

Un autre démon est alors en train de lire la table , obtenant la première tâche non exécutée, le faisant et la marquant comme exécutée. Quand rien n'est trouvé, il attend juste une minute ou deux.

Cette table est également le journal des tâches effectuées et peut également porter des résultats. Et vous pouvez obtenir des moyennes à partir de cela.

+0

Merci pour votre suggestion. J'ai une table mysql avec des informations sur le travail. Je peux ajouter une colonne qui stocke le statut du travail pour surveiller mes travaux. Votre aide est tres apprecie. – shash

Questions connexes