Python gRPC取消客户端的一元流调用

时间:2019-03-14 10:29:28

标签: python grpc grpc-python

使用Python gRPC,我希望能够在设置threading.Event时从客户端取消长时间运行的一元流调用。

def application(stub: StreamsStub, event: threading.Event):
    stream = stub.Application(ApplicationStreamRequest())
    try:
        for resp in stream:
            print(resp)
    except grpc.RpcError as e:
        print(e)

暂时我正在使用channel.close()方法取消该流,但是,这当然会关闭所有连接,而不仅仅是该流。

有人可以建议我如何使用该事件取消流迭代器吗?谢谢

1 个答案:

答案 0 :(得分:0)

由rpc调用返回的for lines in file_in: if line != '\n': file_out.write(lines) 对象实现_Rendezvousgrpc.RpcErrorgrpc.Future,因此取消流就像调用grpc.Call(通过stream.cancel界面)