Skip to content

Instantly share code, notes, and snippets.

@hnuzhoulin
Last active November 17, 2018 04:47
Show Gist options
  • Save hnuzhoulin/7d833fb63c923ebc694c434791175d0f to your computer and use it in GitHub Desktop.
Save hnuzhoulin/7d833fb63c923ebc694c434791175d0f to your computer and use it in GitHub Desktop.
gRPC中response是stream类型
from concurrent import futures
import time
import grpc
import apiserver.api.apiserver_pb2 as apiserver_pb2
import apiserver.api.apiserver_pb2_grpc as apiserver_pb2_grpc
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
class Engine(apiserver_pb2_grpc.EngineServicer):
def ListZones(self, request, context):
for i in range(4):
yield apiserver_pb2.CreateZoneRequest(zone="aa" + str(i), vip="127.1.1.1" + str(i),
weight=1.1 + i, active=True,
admin_access_key="access" + str(i),
admin_secret_key="secret" + str(i))
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
apiserver_pb2_grpc.add_EngineServicer_to_server(Engine(), server)
server.add_insecure_port('[::]:50051')
server.start()
try:
while True:
time.sleep(_ONE_DAY_IN_SECONDS)
except KeyboardInterrupt:
server.stop(0)
if __name__ == '__main__':
serve()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment