0

我正在使用 BaseManager 与工作进程池共享队列。我在它上面调用 start() 是为了让管理器在另一个线程中运行。

在 shutdown() 下,文档说“这仅在使用 start() 启动服务器进程时可用。” 但是,如果我调用shutdown(),前台进程将在每次终止前阻塞管理器进程20 秒。如果我不调用shutdown(),前台进程会立即离开吗?

我错过了什么?

另外,有没有人知道为什么文档说“这可以被多次调用。”?为什么要向管理器进程发送多个关闭信号?

4

1 回答 1

1

它按设计等待 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')
于 2013-03-01T05:07:46.917 回答