我想知道是否有推荐的方法将数据从服务器返回到 GRPC python 中的客户端。
目前,我有一个专用服务器的 RPC 调用,它在每个客户端调用上都会阻塞 - 它在数据队列上循环(当为空时阻塞)以获取数据并将其发送回客户端。此调用的服务器实现:
def GetData(self, request, context):
while self._is_initialized:
data = self._processed_data_queue.get()
yield data
print 'client out'
它看起来超级尴尬,不可扩展,并且明显减慢了通信速度。在 NodeJS、C#、c++ 实现中,实现这一点要容易得多。但是使用 Python 实现似乎不可能有效地完成这一点。我真的希望我错过了什么。
此外,服务器当前从客户端接收数据,将其添加到队列中,然后将其返回给客户端(无需任何处理)。同样,使用上面的代码,即使没有任何处理,我的性能也会急剧下降!
谢谢,迈克