是否可以運行python 的.py文件或段只有一次在瓶
進行必要的-heavily數據involved-計算,節省到一個tmp文件,
然後讓主app.py文件使用該tmp文件作爲數據源,而不必在每次有人在Flask中發出請求時都要重做計算?
是否可以運行python 的.py文件或段只有一次在瓶
進行必要的-heavily數據involved-計算,節省到一個tmp文件,
然後讓主app.py文件使用該tmp文件作爲數據源,而不必在每次有人在Flask中發出請求時都要重做計算?
你可以試試這個:before_first_request
我會告訴你一個簡單的例子:
from flask import Flask
app = Flask(__name__)
@app.before_first_request
def do_heavy_work():
print("work, work!")
@app.route('/')
def index():
return 'Hello, world.'
@app.route('/next')
def next():
return 'yoo'
if __name__ == '__main__':
app.run(debug=True)
,你應該找到了do_heavy_work
只調用一次。
根據計算類型和流量的大小,您可能希望使用像Celery這樣的後臺工作/作業隊列。有關HTTP請求的想法是希望讓請求/響應生命週期儘可能快速和輕鬆。如果您正在爲每個請求執行大量數據計算(作爲此週期的一部分),則會降低用戶速度,並且不能充分利用HTTP進程。
查看此文章從Heroku on Celery
是的。你遇到什麼問題試圖做到這一點? – ppperry
我正在使用python-recsys,每次發出請求時,SVD矩陣似乎都會重新計算,導致Heroku發生超時錯誤 – George