Python 如何将gRPC与asyncio一起使用

Python 如何将gRPC与asyncio一起使用,python,python-asyncio,Python,Python Asyncio,在哪里可以找到将gRPC与asyncio结合使用的示例?特别是,如何使用gRPC和asyncio创建客户机gRPC Python目前与asyncio不兼容。请参阅讨论/功能请求。自版本1.32起,gRPC现在在其应用程序中支持异步IO。如果您使用的是早期版本,那么仍然可以通过实验API使用asyncio API:来自grpc.experimental import aio。gRPC回购协议中还添加了异步IO。以下代码是示例客户端的副本: import logging

在哪里可以找到将gRPC与asyncio结合使用的示例?特别是,如何使用gRPC和asyncio创建客户机gRPC Python目前与asyncio不兼容。请参阅讨论/功能请求。

自版本1.32起,gRPC现在在其应用程序中支持异步IO。如果您使用的是早期版本,那么仍然可以通过实验API使用asyncio API:
来自grpc.experimental import aio
。gRPC回购协议中还添加了异步IO。以下代码是示例客户端的副本:

import logging                                                                  
import asyncio                                                                  
from grpc import aio                                                            
                                                                                
import helloworld_pb2                                                           
import helloworld_pb2_grpc                                                      
                                                                                
                                                                                
async def run():                                                                
    # NOTE(gRPC Python Team): .close() is possible on a channel and should be    
    # used in circumstances in which the with statement does not fit the needs    
    # of the code.                                                              
    async with aio.insecure_channel('localhost:50051') as channel:              
        stub = helloworld_pb2_grpc.GreeterStub(channel)                         
        response = await stub.SayHello(helloworld_pb2.HelloRequest(name='you'))    
    print("Greeter client received: " + response.message)                       
                                                                                
                                                                                
if __name__ == '__main__':                                                      
    logging.basicConfig()                                                       
    asyncio.run(run())

有关如何实现服务器的信息,请参阅。

gRPC对AsyncIO的支持现已普遍提供,您可以在此处找到文档:

来自:“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述这个问题以及迄今为止为解决这个问题所做的工作。”在下一个版本(1.32.0)中,这似乎将从“实验性”中删除。