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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐