簡體   English   中英

多處理BaseManager shutdown()需要二十秒

[英]Multiprocessing BaseManager shutdown() takes twenty-seconds

我正在使用BaseManager與工作進程池共享隊列。 我對其調用start(),以使管理器在另一個線程中運行。

在shutdown()下,文檔顯示“僅當使用start()啟動服務器進程時,此選項才可用。” 但是,如果我調用shutdown(),則前台進程每次都會在終止之前在管理器進程上阻塞20秒。 如果不調用shutdown(),前台進程會立即離開嗎?

我想念什么?

此外,有人知道文檔為什么說“可以多次調用”嗎? 為什么要向管理器進程發送多個關閉信號?

根據設計,它會等待20秒。 參考這里獲取更多信息

        process.join(timeout=0.2)
        if process.is_alive():
            util.info('manager still alive')
            if hasattr(process, 'terminate'):
                util.info('trying to `terminate()` manager process')
                process.terminate()
                process.join(timeout=0.1)
                if process.is_alive():
                    util.info('manager still alive after terminate')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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