使用 bottle/Uwsgi/nginx 在第一个请求之前执行工作
Perform work before first request with bottle/Uwsgi/nginx
我有一个 bottle 网络服务器 运行 UWSGI 和 Nginx。通常,如果我使用
手动启动脚本
python app.py
我能做到
if __name__ == '__main__':
spawn_workers()
init_workspace()
run(app, host='0.0.0.0', port=8080)
问题是,当使用 UWSGI 时,它没有 运行 if __name__ == '__main__'
部分,因为它只获取 app = application = bottle.Bottle()
部分。这意味着我永远没有机会在网络服务器启动之前生成后台工作程序。
解决这个问题的正确方法是什么?我看到 flask 有一个 app.before_first_request
功能,但我找不到与 bottle 的那个功能相对应的任何东西。
只在app.py
中进行初始化还不够吗?例如,
# app.py
spawn_workers()
init_workspace()
app = Bottle()
我有一个 bottle 网络服务器 运行 UWSGI 和 Nginx。通常,如果我使用
手动启动脚本python app.py
我能做到
if __name__ == '__main__':
spawn_workers()
init_workspace()
run(app, host='0.0.0.0', port=8080)
问题是,当使用 UWSGI 时,它没有 运行 if __name__ == '__main__'
部分,因为它只获取 app = application = bottle.Bottle()
部分。这意味着我永远没有机会在网络服务器启动之前生成后台工作程序。
解决这个问题的正确方法是什么?我看到 flask 有一个 app.before_first_request
功能,但我找不到与 bottle 的那个功能相对应的任何东西。
只在app.py
中进行初始化还不够吗?例如,
# app.py
spawn_workers()
init_workspace()
app = Bottle()