Je veux créer des processus de travail et s'ils tombent en panne à cause d'une exception, je voudrais qu'ils réapparaissent. Mis à part la méthode is_alive dans le module multitraitement, je n'arrive pas à trouver un moyen de le faire. Cela nécessiterait de parcourir tous les processus en cours (après un sommeil) et de vérifier s'ils sont en vie. C'est essentiellement une boucle occupée, je me demandais s'il y avait une meilleure solution qui réveillera mon programme dans le cas où l'un de mes processus de travail s'est écrasé. Une fois qu'il se réveille, je voudrais enregistrer l'exception qui a planté mon programme et lancer un autre processus.Python Multiprocessing respawn processus écrasés
Répondre
L'interrogation pour voir si les processus enfants sont actifs devrait fonctionner correctement, car il s'agit d'une vérification à faible coût et vous n'avez pas besoin de vérifier cela souvent.
La première réponse à cette question (similaire) question a un exemple de code Python: Multi-server monitor/auto restarter in python
Vous pouvez envelopper vos processus de travail dans try/sauf blocs où l'exception pousse un message sur un tuyau avant de soulever. Bien sûr, le sondage n'est pas vraiment pire que ça et c'est plus simple.
Si vous utilisez un système de type Unix, votre programme principal peut être averti des enfants décédés en installant un signal handler. Recherchez la documentation de votre système d'exploitation sur signal()
, en particulier SIGCHLD
. Je crains de ne pas me souvenir si Windows couvre SIGCHLD avec son support de signal POSIX très limité.
- 1. Multiprocessing Python
- 2. Multiprocessing Python avec des processus non liés
- 3. Multiprocessing Python: Pool de processus personnalisés
- 4. Multiprocessing Python pour les processus parallèles
- 5. multiprocessing python apply_async utilise seulement un processus
- 6. multiprocessing en python
- 7. Multiprocessing Python Core Foundation Erreur
- 8. multiprocessing python, le gestionnaire initie la boucle spawn du processus
- 9. Python: multiprocessing et Array de c_char_p
- 10. python: multiprocessing Evénement
- 11. Multiprocessing Python se bloque
- 12. multiprocessing ne pas engendrer de nouveaux processus
- 13. Multiprocessing Python Pool.map appelle aquire?
- 14. Multiprocessing lançant trop d'instances de Python VM
- 15. problème producteur/consommateur avec multiprocessing python
- 16. Multiprocessing Python pool.map soulève IndexError
- 17. Memoization, Classes et Multiprocessing en Python
- 18. RuntimeError sur Windows essayant multiprocessing python
- 19. SqlAlchemy et Multiprocessing
- 20. Python: Verrous de `threading` et` multiprocessing` interchangeables?
- 21. Multiprocessing Python Événements vs événements Theading
- 22. Multiprocessing Python/File d'attente avec cherrypy
- 23. Multiprocessing Python - Pipe vs file d'attente
- 24. Multiprocessing Python: Comment puis-je rediriger FIABLEMENT stdout depuis un processus fils?
- 25. Multiprocessing Python - Comment libérer de la mémoire quand un processus est terminé?
- 26. Multiprocessing lent avec cython
- 27. elasticsearch-py et multiprocessing
- 28. Multiprocessing avec file d'attente renouvelable
- 29. multiprocessing avec twisted
- 30. Throttling respawn - Message d'erreur dans Console.app