![](/img/trans.png)
[英]Python Multiprocess Pool. How to exit the script when one of the worker process determines no more work needs to be done?
[英]How to manage the python process when using multiprocess method
在 Python 中使用多處理時出現問題。 我的一個進程靜默停止。 如何獲取信號並自動重啟。
我的代碼如下。 p0 在運行數小時后無任何警告地靜默停止。 我嘗試過使用is_alive()
但仍然不知道如何將其放入正確的流程中,以便在流程停止時重新啟動。
def func_15():
while 1:
get_data
send_data
...
if __name__ == '__main__':
logging.info('===========PROCESS BEGIN================')
logging.info('TIME15 - CREATING PROCESS')
p0 = Process(target = func_15m, args = ())
logging.info('TIME1 - CREATING PROCESS')
p1 = Process(target = func_1h, args = ())
logging.info('TIME4 - CREATING PROCESS')
p2 = Process(target = func_4h, args = ())
p0.start()
p1.start()
p2.start()
p0.join()
p1.join()
p2.join()
請幫忙! 非常感謝!
看看這個問題Python Multiprocessing:Handling Child Errors in Parent及其答案。
如果我是你,我會首先實現一種方式來查看導致循環退出的原因,因此將異常傳播到父進程。 (或者簡單地將整個循環包裝在 try catch 中,並在捕獲時打印異常)。 然后您可以確定它是否可以在您的 function 中修復。 除此之外,還有關於在進程停止時希望進程重新啟動時該怎么做的解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.