2010-02-18 9 views
1

J'utilise le module python multiprocessing avec Queue pour la communication entre les processus. Certains processus envoient seulement (c'est-à-dire queue.put) et je n'arrive pas à trouver un moyen de détecter quand la fin de réception se termine brusquement.détection de l'échec de la communication lorsque "mettre" dans la file d'attente

Y at-il un moyen de détecter si le processus à l'autre extrémité de la file d'attente se termine sans ayant get à partir de la file d'attente? N'y a-t-il pas un signal que je pourrais piéger? Ou dois-je régulièrement get de la file d'attente et piéger le EOFError manuellement.

Répondre

0

Je ne crois pas multiprocessing met en place un processus de "chien de garde" pour vous de prendre soin des accidents ou des morts de certains de vos processus. Cela peut valoir la peine d'en créer un (assez difficile à faire multiplate-forme, mais si, disons, vous êtes seulement inquiet pour Linux, ce n'est pas terrible).