python - 为 GRPC 流式处理端点翻转 Python 生成器
问题描述
我有一个 GRPC 服务器,可以将项目流回客户端。然而,这些项目的生成也取决于异步事件和各种东西。所以我想允许其他组件调用grpc组件,通过调用将数据传递给客户端。然后数据被发送到打开的 grpc 连接。
这就是我所拥有的:
class SubmitService(ptac_grpc.SubmitServiceServicer):
_order_gen: Generator = None
def sendOrder(self, msg: ptac_pb2.PBOrder):
if SubmitService._order_gen is not None:
SubmitService._order_gen.send(msg)
else:
log.error("could not send order to server, no generator present")
def getOrders(self, request, context):
"""DO NOT CALL from python. This is the API to the adapter"""
SubmitService._order_gen = self._inside_out_gen()
for msg in SubmitService._order_gen:
yield msg
def _inside_out_gen(self) -> Generator:
while True:
#turning a generator inside out
yield (yield)
我的 GRPC 端点称为getOrders
. 它由连接的客户端调用。上面的代码假设现在只有一个客户端。它会起作用吗?
解决方案
推荐阅读
- javascript - ThreeJS - 将纹理投影到网格表面
- node.js - 如何处理来自http post响应的http状态码并传递给angularjs控制器
- json - Angular 6 错误:找不到“字符串”类型的不同支持对象
- mapstruct - MapStruct - 如何为不同的映射方法设置不同的空策略?
- reactjs - 了解 React Redux Reducer 和 MapstateToProps
- java - 将文本字段中的文本从一个类复制到另一个类。(爪哇)
- c++ - 如何从文件中一次读取一个输入,类似于在 c++ 中使用 cin/scanf 从控制台读取输入?
- javascript - 如何从对象数组中删除重复记录?
- pymc3 - 在 PyMC3 中解析后验高斯过程
- javascript - 如何修复我的代码以获取使下拉菜单工作的功能?