0

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

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()方法取消流,但这当然会关闭所有连接而不仅仅是这个流。

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

4

1 回答 1

1

rpc 调用返回的_Rendezvous对象实现grpc.RpcErrorgrpc.Futuregrpc.Call,因此取消流就像调用stream.cancel(从grpc.Future接口)一样简单

于 2019-03-15T10:38:16.670 回答