在Flask

时间:2015-11-08 19:57:52

标签: python flask recommendation-engine

是否可以只运行一次.py文件或python

使必要的 - 重要数据 - 计算,保存到tmp文件,

然后让主app.py文件使用该tmp文件作为数据源,而不必在每次有人在Flask中发出请求时重做计算?

2 个答案:

答案 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进程。

Heroku on Celery

查看此文章