Ejemplo n.º 1
0
 def Calc(self, request, ctx):
     if request.n <= 0:
         ctx.set_code(grpc.StatusCode.INVALID_ARGUMENT)
         ctx.set_details("request number should be positive")
         return pi_pb2.PiResponse()
     s = 0.0
     for i in range(request.n):
         s += 1.0 / (2 * i + 1) / (2 * i + 1)
     return pi_pb2.PiResponse(value=math.sqrt(8 * s))
Ejemplo n.º 2
0
 def Calc(self, request, ctx):
     if request.n <= 0:
         ctx.set_code(grpc.StatusCode.INVALID_ARGUMENT)  # 参数错误
         # ctx.set_details("request number should be positive")  # 错误具体说明
         # ctx.set_details(json.dumps({"biz_err_code": 10086, "msg": "something happened"}))
         ctx.send_initial_metadata([("biz_err_code", "10086"), ("msg", "something happened")])
         return pi_pb2.PiResponse()
     s = 0.0
     for i in range(request.n):
         s += 1.0/(2*i+1)/(2*i+1)
     return pi_pb2.PiResponse(value=math.sqrt(8*s))
Ejemplo n.º 3
0
 def Calc(self, request_iterator, ctx):
     for request in request_iterator:
         if random.randint(0, 1) == 1:
             continue
         s = 0.0
         for i in range(request.n):
             s += 1.0 / (2 * i + 1)**2
         yield pi_pb2.PiResponse(n=i, value=math.sqrt(8 * s))
Ejemplo n.º 4
0
 def Calc(self, request, context):
     """计算圆周率的逻辑
     """
     time.sleep(0.01)
     s = 0.0
     for i in range(request.n):
         s += 1.0 / (2 * i + 1) / (2 * i + 1)
     return pi_pb2.PiResponse(value=math.sqrt(8 * s))
Ejemplo n.º 5
0
 def Calc(self, request_iterator, ctx):
     # request 是一个迭代器参数,对应的是一个 stream 请求
     for request in request_iterator:
         # 50% 的概率会有响应
         if random.randint(0, 1) == 1:
             continue
         s = 0.0
         for i in range(request.n):
             s += 1.0 / (2 * i + 1) / (2 * i + 1)
         # 响应是一个生成器,一个响应对应对应一个请求
         yield pi_pb2.PiResponse(n=i, value=math.sqrt(8 * s))
Ejemplo n.º 6
0
 def Calc(self, request_iterator, context):
     # request是一个迭代器参数,对应一个stream请求
     for request in request_iterator:
         # if request.n < 0:
         #     context.set_code(grpc.StatusCode.INVALID_ARGUMENT) # 参数错误
         #     context.set_details('request number should be positive') # 错误具体说明
         #     yield pi_pb2.PiResponse()
         # 50% 的概率会有响应
         # if random.randint(0, 1) == 1:
         #     continue
         s = 0.0
         for i in range(request.n):
             s += 1.0 / (2 * i + 1) / (2 * i + 1)
             # 响应是一个生成器,一个响应对应一个请求
             context.set_code(grpc.StatusCode.OK)
             yield pi_pb2.PiResponse(n=i, value=math.sqrt(8 * s))
Ejemplo n.º 7
0
    def Calc(self, request, ctx):
        s = 0.0

        for i in range(request.n):
            s += 1.0 / (2 * i + 1) / (2 * i + 1)
        return pi_pb2.PiResponse(value=math.sqrt(s * 8))
Ejemplo n.º 8
0
 def Calc(self, request, ctx):
     time.sleep(1)
     s = 0.0
     for i in range(request.n):
         s += 1.0 / (2 * i + 1) / (2 * i + 1)
     return pi_pb2.PiResponse(value=math.sqrt(8 * s))