python中pool部分进程卡住了,Python multiprocessing.pool崩溃的进程

Well, they're not supposed to crash, but they do anyway. Is there a way to get multiprocessing.Pool, or any other multiprocessing tool to re-start a process that dies? How would I do this otherwise?

Thanks!

Edit: Some background. The process does several things with geometry in Autodesk Maya. Which it does totally fine. The problem is that every once in a while I'll have a file that decides, once it's finished and a new scene is being opened, to completely exit Maya (or mayapy) with no python warnings or errors, or critical process errors from Windows. It just dies. There's not really anything I can do about the crashing unfortunately.

What I'm hoping for is a way to re-start any processes that have died from a crash.

解决方案

Apparently, recently they've changed the behaviour in Python 3.3, to raise an exception in this case:

http://hg.python.org/cpython/rev/6d6099f7fe89

The defect that lead to this ticket is:

http://bugs.python.org/issue9205

However, if you manually spawn the workers (which I usually do when I use multiprocessing), you may try to use the Process.is_alive() function:

http://docs.python.org/dev/library/multiprocessing#multiprocessing.Process.is_alive

你可能感兴趣的:(python中pool部分进程卡住了,Python multiprocessing.pool崩溃的进程)