我正在使用BaseManager与工作进程池共享队列。我在其上调用start()以使管理器在另一个线程中运行。
在shutdown()下,文档说“只有在使用start()启动服务器进程时才可用。”但是,如果我调用shutdown(),前台进程将在每次终止之前在管理器进程上阻塞20秒。如果我不调用shutdown(),前台进程会立即离开吗?
我错过了什么?
此外,有没有人知道为什么文档说“这可以被多次调用。”?为什么要向管理器进程发送多个关闭信号?
答案 0 :(得分:1)
它按设计等待20秒。请refer here了解更多信息
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')