from multiprocessing import Process, Manager
def frames_process(self):
# fork process
self.frames_flag.value = True
self.f_process = Process(target=self.frames_handle)
self.f_process.start()
def default_cb(call_future):
try:
resp = call_future.result()
logging.info("default_cb called {}".format(resp))
return resp
except Exception as e:
logging.error("future_callback error: {}".format(e))
我使用Python2和grpc
错误是StatusCode.UNAVAILABLE
谢谢。
答案 0 :(得分:0)
从代码片段中我不清楚您的客户端代码打算如何工作或何时调用fork(通过多处理库),但是默认情况下,gRPC Python客户端与fork syscall不兼容。如果您在创建gRPC Python通道后随时进行分叉,则可以解释您遇到的错误。您可以尝试使用环境变量GRPC_ENABLE_FORK_SUPPORT=1
来运行,该变量是gRPC Python v1.15.0中添加的,用于打开客户端fork支持。