是否可以只运行一次.py文件或python 段
使必要的 - 重要数据 - 计算,保存到tmp文件,
然后让主app.py文件使用该tmp文件作为数据源,而不必在每次有人在Flask中发出请求时重做计算?
答案 0 :(得分:1)
你可以尝试这个: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
只调用一次。
答案 1 :(得分:0)
根据计算类型和流量,您可能希望使用像Celery这样的后台工作程序/作业队列。 HTTP请求的想法是,您希望在请求/响应生命周期中尽可能快速和轻松地保持它们。如果您在此周期中为每个请求执行大量数据计算,则会降低用户的速度并且不会充分利用HTTP进程。
查看此文章