在平常业务中,java可以通过修改环境变量,nacos等实现参数的热更新。
对应到python环境下,python3可以通过reload函数重新加载配置文件,无需重启应用即可修改配置。
示例:
启动应用后,通过接口调用test方法,查看print输出。再修改config文件中的参数内容,再次调用test方法,可以看到print输出的值改变了。
from importlib import reload
@router.post("/test")
def test():
reload(config)
from config import VALID_MODEL, MODEL_PARAM_MAX_STEPS
print(VALID_MODEL, MODEL_PARAM_MAX_STEPS)
配置文件config.py:
VALID_MODEL = {'DLinear', 'DeepNPTS'}
MODEL_PARAM_MAX_STEPS = 120
原理:
代码前的from config import VALID_MODEL默认是只导入一次的,通过reload函数重新加载config文件,可以在应用运行过程中动态修改参数。