Python多进程重生成崩溃的进程

2024-06-16 10:04:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一些工作进程,如果它们由于异常而崩溃,我希望它们重生。除了多处理模块中的is\u alive方法外,我似乎找不到一种方法来做到这一点。在

这将需要我迭代所有正在运行的进程(在休眠之后),并检查它们是否处于活动状态。这基本上是一个繁忙的循环,我想知道是否有更好的解决方案可以在我的任何一个工作进程崩溃的情况下唤醒我的程序。一旦它被唤醒,我想记录那个使我的程序崩溃的异常并启动另一个进程。在


Tags: 模块方法程序进程is记录情况解决方案
3条回答

您可以将工作进程包装在try/except块中,其中except在引发之前将消息推送到管道上。当然,投票并没有比这更糟糕,也更简单。在

如果您在一个类unix的系统上,您的主程序可以通过安装signal handler来通知死子程序。在signal()上查找操作系统的文档,尤其是SIGCHLD。恐怕我不记得Windows是否用其非常有限的POSIX信号支持来覆盖SIGCHLD。在

轮询以查看子进程是否处于活动状态应该可以正常工作,因为这是一个低开销的检查,您不需要经常检查。在

这个(类似)问题的第一个答案有一个Python代码示例:Multi-server monitor/auto restarter in python

相关问题 更多 >