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