如何在 python 中热重载 grpc-server?

How to hot reload grpc-server in python?

我正在使用 grpc 开发一些 python 微服务,我正在使用 docker 用于 cassandra 数据库和微服务。有没有办法在 docker-compose 中设置更改时重新加载?

我猜首先我需要将代码安装为一个卷,但我没有看到像 flask 那样在 GRPC 服务器上重新加载的方法。

我们使用 watchdog[watchmedo] 与我们的 grpc 服务和 Docker。

安装看门狗或添加到您的 requirements.txt 文件

python -m pip install watchdog[watchmedo]

然后在您的 docker-compose.yml 中将 watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/" python -- -m app 添加到您的容器中,其中 --directory 是您的应用程序包含在 docker 容器中的目录,并且 python -- -m app 是启动 grpc 服务器的文件。在此示例中,启动服务器的文件名为 app.py:

  app:
    build:
      context: ./app/
      dockerfile: ./Dockerfile
      target: app
    command: watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/" python -- -m app
    volumes:
      - ./app/:/usr/src/app/