0
如果gRPC客戶端在服務器之前啓動,它將退出並出現異常。我正在開發的應用程序同時啓動一堆服務器和客戶端,但是我必須在執行順序方面保持健壯。如果客戶端在服務器之前啓動,我希望它等到服務器出現。如何知道GRPC服務器是否可用
我修改了HelloWorld Python客戶端舉例如下:
done = False
while not done:
try:
response = stub.SayHello(helloworld_pb2.HelloRequest(name='you'), timeout=1)
print("Greeter client received: " + response.message)
done = True
except:
print('Waiting for server connect...')
time.sleep(1)
所以現在,如果我的服務器之前啓動客戶端,我得到的「等待服務器連接...」消息我的終端窗口中滾動起來如預期。然後我啓動服務器,並最終連接...。事實上,在出現'Hello you'消息之前大約需要十秒鐘,這非常長。爲什麼它會這麼慢,並且有沒有一種強大的方法來檢查服務器連接?
請注意,「WaitForReady」RPC通常應該首選手動觀察連接狀態。我還沒有在Python中找到該API。 –