flask 中如何调用 grpc

发布于 2022-09-11 14:52:16 字数 427 浏览 17 评论 0

# 这是 flask 中的一个 route
@app.route('/test')
def test():
  # 同样的方法,放到了flask中,就会卡在发送数据的那个地方
  send_grpc()

# 这段,放到 __main__ 下跑,是没问题的
def send_grpc():
  channel = grpc.insecure_channel('server_host')
  client = something_pb2_grpc.SomethingStub(channel=channel)
  # 在flask中会卡在这个地方
  res = client.SayHello(
    something_pb2.Hellp(word='')
  )
  print res

有没有哪位知道这是为什么,是flask和grpc不兼容吗?
请问有没有什么解决方案。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

热风软妹 2022-09-18 14:52:17

flask 没关系,是我自己的锅。
代码中为 geventmonkey.patch_all() 导致的。
应该是这个 patchgrpc 不兼容,
如果有哪位朋友能帮忙提出个既能 patch ,又可以兼容的方案,那就再好不过了。

解释:
https://segmentfault.com/a/11...
解决方案:
https://github.com/grpc/grpc/...
https://github.com/grpc/grpc/...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文