如何在python中重新加载grpc-server?

问题描述

我正在使用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/