簡體   English   中英

使用多進程方法時如何管理 python 進程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM