我有一个使用命令行运行的 flask 应用程序。但是,当我检查进程时,它显示有两个进程正在运行,难道不应该只有一个吗?
#!/usr/bin/env bash
# Activate virtual environment
source .venv/bin/activate
export FLASK_APP=migration_status.py
export FLASK_ENV=development
flask run --host=0.0.0.0 --port=5005
如果我运行上面的脚本,然后运行检查 linux 进程。它向我展示了两个实例。
igns 6590 324 1 16:34 pts/2 00:00:00 /home1/igns/git/emsr/.venv/bin/python2.7 /home1/igns/git/emsr/.venv/bin/flask run --host=0.0.0.0 --port=5005
igns 6616 6590 2 16:35 pts/2 00:00:00 /home1/igns/git/emsr/.venv/bin/python2.7 /home1/igns/git/emsr/.venv/bin/flask run --host=0.0.0.0 --port=5005
我在启动应用程序时做错了什么吗?或者这就是它的工作原理?
最佳答案
Flask 的开发服务器是多线程的。 Web 开发服务器通常使用多个进程,因此它们可以同时执行两件事。
- 监听http请求并返回响应
- 监视代码更改并在更改时重新加载开发服务器
如果您使用标记 flask run --no-reload
运行它,您应该只会看到一个进程。
The development server uses threads by default. (#2529)
关于python - 如果我启动一个 flask 应用程序,它会显示两个进程正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53543711/