使用Werkzeug重新加载器重新加载部分代码

时间:2015-11-17 10:44:37

标签: python flask socket.io reload werkzeug

我有一个python Flask应用程序使用蓝图和socketio在启动应用程序之前将一个大型模型(5GB)加载到内存中,如下所示:

launcher.py

import app
from model import load_model

if __name__ == "__main__":
    load_model()
    app.main()

app.py

from app import app, socketio

def main():
    socketio.run(app, port = 5000)

model.py

model = None

def load_model():
    global model
    if model is None:
        model = load_bigass_model_from_external_source() #this takes roughly 40 minutes

def get_model():
    return model

然后在我看来我可以打电话:

views.py

from model import get_model

@blueprint.route("/", methods=["GET"])
def home():
        print get_model()

现在一切正常,除非我开始更改代码。 Werkzeug重新加载(这本身很好),但它也会再次加载我的模型。加载模型大约需要40分钟,因此您可以看到这不是很理想。

我想知道是否有办法让Werkzeug重新加载其他所有内容,但如果已加载一次,请将模型保留在内存中。

0 个答案:

没有答案