在apache上部署flask应用程序时如何初始化缓存

时间:2017-04-27 14:10:53

标签: python apache flask

我需要在Apache服务器上部署一个烧瓶应用程序,我主要遵循本指南:

我想做以下事情:   - 运行3个数据库查询   - 使用这些查询的结果初始化缓存

在本地服务器上测试应用程序时,我通常在startServer方法中包含初始化(如下所示),但我知道在apache上部署时该方法无法运行。

def startServer():

    app.secret_key = 'super_secret_key'
    app.debug = True
    app.run(host='0.0.0.0', port=8000)
    cache.set('galleries', getTable(Gallery))

    if __name__ == '__main__':
        startServer()

有人知道在启动服务器而不是等待请求时初始化缓存的最佳方法是什么?

请注意,我使用的是sql炼金术,而wsgi文件中尚未提供数据库连接。

1 个答案:

答案 0 :(得分:0)

在flask webapp文件中,在WSGI脚本中导入的文件,其中:

app = Flask(__name__)

# Cache seeding
cache.set('galleries', getTable(Gallery))

注意 - 这将在每次导入webapp时设置缓存,而不仅仅是一次。多个WSGI进程将多次运行查询和设置缓存。

如果不需要,请考虑进程外同步,例如fcntl library提供的。