使用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()
方法取消该流,但是,这当然会关闭所有连接,而不仅仅是该流。
有人可以建议我如何使用该事件取消流迭代器吗?谢谢
答案 0 :(得分:0)
由rpc调用返回的for lines in file_in:
if line != '\n':
file_out.write(lines)
对象实现_Rendezvous
,grpc.RpcError
和grpc.Future
,因此取消流就像调用grpc.Call
(通过stream.cancel
界面)