在哪里可以找到将gRPC与asyncio一起使用的示例,特别是如何使用gRPC和asyncio创建客户端
答案 0 :(得分:7)
从1.32版开始,gRPC现在在其Python API中支持asyncio。如果您使用的是早期版本,则仍可以通过实验性API from grpc.experimental import aio
使用asyncio API。异步hello world example也已添加到gRPC存储库中。以下代码是示例客户端的副本:
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())
有关如何实现服务器的信息,请参见my other answer。
答案 1 :(得分:0)
gRPC Python当前与asyncio不兼容。请参阅https://github.com/grpc/grpc/issues/6046上的求助/功能请求。
答案 2 :(得分:0)
gRPC对AsyncIO的支持现已普遍可用,您可以在这里找到文档:https://grpc.github.io/grpc/python/grpc_asyncio.html