出错时退出多处理程序

时间:2015-06-29 14:01:18

标签: python error-handling multiprocessing

我有一个应用程序,可以为通信创建一个多处理过程,为工作者创建n。当某个地方出现错误或用户按下control-C时,我需要找到退出整个应用程序的方法。

//代理通过zmq连接

1 个答案:

答案 0 :(得分:1)

如果通信过程中发生错误,您可以使用现有套接字发送一个特殊任务,要求接收方关闭。这将由一个工作人员接收,通知通信进程(通过某个套接字)它正在退出,然后退出。

如果没有在工作人员排队,通信过程基本上可以用n个套接字填充管道,或者如果排队完成则偶尔k*n +。这样做直到所有工人完成。

可以通过前面提到的发生错误的通道将工作人员的错误发送到通信过程。该通道可以例如是推/拉插座,或者可以是具有代理的发布/订阅。 (我猜你使用推/拉来取回结果。在那种情况下使用它。)