![](/img/trans.png)
[英]Deployment of pickle model in a python flask app on Azure App Service
[英]Reload pickle in Flask app
我正在尝试提供Flask应用程序,并希望在特定的时间窗口(例如每天9AM)重新加载一个pickle文件。 我试图用一个时间计数器将一个while循环放入我的flask应用程序的末尾,但这最终导致我的应用程序挂起。 目前设置是...
# main.wsgi
from main import app as application
# main.py
data = pickle.load("/path/to/pickle.file")
@app.route("/")
def func():
return render_template("base.html", data_to_serve = data)
# Can I write something here to reload the data at specific time points?
我假设这里的目标是做我所谓的“穷人的缓存”。 理想情况下,您将选择使用pymemcache和Flask的缓存实用程序之类的东西,但是下面的代码片段将完成您想要的事情。 如果您想每次重新加载泡菜,都可以重构。 有点违反了我的想法。
另外,请注意,我花了一段时间返回泡菜数据。 上午9点至下午12点。 您也可以执行if now.time() == time(hour=9)
来完成所需的操作。
import pickle
from datetime import datetime, time
cached_data = pickle.load("/path/to/pickle.file")
START_TIME = time(hour=9)
END_TIME = time(hour=12) # Can also use something like timedelta
def in_range():
now = datetime.now()
if START_TIME <= now.time() <= END_TIME:
return True
return False
app.route("/")
def func():
if in_range():
return render_template("base.html", data_to_serve = cached_data)
# else do normal business
data = 'compute new data...'
return render_template("base.html", data_to_serve = data)
编码愉快!
您想要在特定时间点重新加载数据,那么您有两个选择:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.