You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在运行中的Flask实例中手动重载配置文件?

手动重载配置文件且无需重启Flask/Gunicorn实例的问题探讨

假设我们有一个依赖文件系统配置文件的服务:

class Service:

    def _load():
        # (re)loads config file
        pass

    def do_some_work():
        # uses config file
        pass  

还有一个为客户端提供该服务的Flask应用:

app = Flask(__name__)
service = Service()

@app.route('/do-some-work')
def do_some_work():
    return service.do_some_work()

if __name__ == '__main__':
    app.run()

核心问题:如何手动重载配置文件,且无需重启Flask/Gunicorn实例?

现有方案的缺陷

我了解几种常规方案,但各自存在不足:

  • 使用watchdog或同类工具监控配置文件(目录)的变化
  • 设置定时任务定期检查文件修改时间,比如Flask-APScheduler
  • 新增类似@app.route('/reload')的HTTP接口

需求与解决方案

我希望构建一个无需HTTP即可与运行中的Python进程交互的CLI工具,但对WSGI进程隔离机制了解有限。

更新:
可行方案是使用RPyC,但需要满足以下条件之一:

  • Gunicorn以单worker模式启动
  • 应用使用缓存存储配置数据

内容的提问来源于stack exchange,提问作者Maxim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:16:20