相关文章推荐
爱喝酒的日光灯  ·  python迭代器 __iter__() ...·  3 周前    · 
豪情万千的乒乓球  ·  C++(STL):13--- ...·  1 周前    · 
怕考试的日光灯  ·  如何将标题行添加到 Pandas ...·  1 年前    · 
千杯不醉的海龟  ·  【预告】CSIG图像图形中国行将于8月7日举 ...·  1 年前    · 
温柔的春卷  ·  vs2013 Warning 44 ...·  1 年前    · 
面冷心慈的人字拖  ·  perl删除匹配行下一行-掘金·  1 年前    · 
无邪的灯泡  ·  面向独立软件供应商 (ISV) 的 ...·  2 年前    · 
Code  ›  带有迭代器请求的gRPC python上的数据流,但得到“异常迭代请求!”开发者社区
python python函数 grpc 迭代器
https://cloud.tencent.com/developer/ask/sof/106542627
兴奋的玉米
5 月前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 带有迭代器请求的gRPC python上的数据流,但得到“异常迭代请求!”

Stack Overflow用户
提问于 2021-12-21 10:25:40
EN

我试图使用gRPC python进行双向流通信,但是客户端请求中存在一些问题.

这是我的心得:

代码语言: javascript
复制
service ABC {
    rpc DataTransmission (stream DataTransmissionRequest) returns (stream DataTransmissionResponse);
message DataTransmissionRequest {
    bytes data = 1;
    string ticket = 2;
message DataTransmissionResponse {
    bytes data = 1;
}

下面是我的客户端代码,用于生成迭代器请求并调用dataTransmission函数

代码语言: javascript
复制
def generateRequests():
        req_msgs = [
            (b"123", "sySJZDV9Rb8dyqt1"),
            (b"123"),
            (b"123"),
            (b"123"),
            (b"123"),
            (b"123"),
        iter = 0
        for (req, ticket) in req_msgs:
            print("(req, ticket) = ", (req, ticket))
            if iter == 0:
                request = ABC_pb2.DataTransmissionRequest(data=req, ticket=ticket)
            else:
                request = ABC_pb2.DataTransmissionRequest(data=req)
            iter += 1
            print("iter = ", iter)
            yield request
    #my_queue = queue.SimpleQueue()
    with grpc.insecure_channel(addr) as channel:
        stub = ABC_pb2_grpc.ServiceProxyStub(channel)
        data_transmission_resp = stub.DataTransmission(generateRequests())
        print("data_transmission_resp = ", data_transmission_resp)
        ##print("data_transmission_resp = ", list(data_transmission_resp))
        ## use the results
        for data_trans in data_transmission_resp:
            print(data_trans)

但得到了错误

代码语言: javascript
复制
grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
        status = StatusCode.UNKNOWN
        details = "Exception iterating requests!"
 
推荐文章
爱喝酒的日光灯  ·  python迭代器 __iter__() __next__ / for循环, next()_python for next
3 周前
豪情万千的乒乓球  ·  C++(STL):13--- list插入和访问元素开发者社区
1 周前
怕考试的日光灯  ·  如何将标题行添加到 Pandas DataFrame? - 知乎
1 年前
千杯不醉的海龟  ·  【预告】CSIG图像图形中国行将于8月7日举办 - 专知
1 年前
温柔的春卷  ·  vs2013 Warning 44 warning LNK4099: PDB 'vc120.pdb' was not found with '_Charles_k的博客-CSDN博客
1 年前
面冷心慈的人字拖  ·  perl删除匹配行下一行-掘金
1 年前
无邪的灯泡  ·  面向独立软件供应商 (ISV) 的 Azure | Microsoft Azure
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号