У меня был мой клиент, который использует gRPC. Моя проблема в том, что он не компилируется из-за ошибки в DNS, которую я не могу удалить. Если я комментирую часть создания, тогда она работает (но я должен использовать часть создания):
# example_consumer.py
import pika, os, time
import grpc
import garden_pb2_grpc
import garden_pb2
# Access the CLODUAMQP_URL environment variable and parse it (fallback to localhost)
url = os.environ.get('CLOUDAMQP_URL', 'amqp://lay5672')
params = pika.URLParameters(url)
connection = pika.BlockingConnection(params)
channel = connection.channel() # start a channel
channel.queue_declare(queue='garden') # Declare a queue
grpcChannel = grpc.insecure_channel('https://') # connection
stub = garden_pb2_grpc.GardenServiceStub(grpcChannel)
my_garden = garden_pb2.Garden(
id="5d0a61f86e95521de096efb3",
position=garden_pb2.Garden.Position(lat=1, lng=2),
size=garden_pb2.Garden.Size(height=10, width=20),
garden=[],
userID="5d0a61f86e95521de096efb3"
)
createRequest = garden_pb2.CreateRequest(
garden=my_garden
)
def garden_process_function(msg):
print("Received " + str(msg))
print("This function can do something")
time.sleep(1) # delays for 5 seconds
feature = stub.Create(createRequest) # je dois appeler avec un objet create request
return;
# create a function which is called on incoming messages
def callback(ch, method, properties, body):
garden_process_function(body)
class Server(object):
@staticmethod
def receiveMsg():
# set up subscription on the queue
channel.basic_consume('garden',
callback,
auto_ack=True)
# start consuming (blocks)
channel.start_consuming()
connection.close()
class App(object):
@staticmethod
def run():
print('Running...')
if __name__ == '__main__':
App.run()
Server.receiveMsg()
Но я получил эту ошибку:
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "DNS resolution failed"
debug_error_string = "{"created":"@1570759414.997000000","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3876,"referenced_errors":[{"created":"@1570759414.997000000","description":"Resolver transient failure","file":"src/core/ext/filters/client_channel/resolving_lb_policy.cc","file_line":263,"referenced_errors":[{"created":"@1570759414.997000000","description":"DNS resolution failed","file":"src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc","file_line":189,"grpc_status":14,"referenced_errors":[{"created":"@1570759414.997000000","description":"OS Error","file":"src/core/lib/iomgr/resolve_address_windows.cc","file_line":96,"os_error":"The specified class was not found.\r\n","syscall":"getaddrinfo","wsa_error":10109}]}]}]}
Что я сделал не так? Я совсем не понимаю ошибку. Я под windows