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

Python gRPC从客户端取消一元流调用,python,grpc,grpc-python,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

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


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

rpc调用返回的
\u Rendezvous
对象实现了
grpc.RpcError
grpc.Future
grpc.call
,因此取消流就像调用
stream.cancel
(从
grpc.Future
接口)一样简单