gpt4 book ai didi

python - gunicorn worker 为每个请求退出

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:47 25 4
gpt4 key购买 nike

我全新安装了 apache-airflow 1.8.2,启动了它的网络服务器,它的 gunicorn 工作人员在每次网页请求时退出,在等待新工作人员时让请求挂起大约 30 秒产卵。需要帮助解决此问题。

详情如下

我已经安装了 apache-airflow 1.8.2 并遵循了 this guide .我在 8081 端口启动了网络服务器。

现在当我使用浏览器访问服务器时,响应很慢。我查看了控制台输出,发现每次加载网页时,它都会显示“Worker existing”,然后暂停很长时间并显示“Booting worker”。

在挖掘源代码后,我发现这些是 gunicorn worker。我没有使用 gunicorn、airflow 或 Flask 的经验,所以我不知道这是否是预期的行为,但我觉得不应该。至少网络服务器不应该为每个网页挂起半分钟。

控制台输出:

---> Browser request
[2017-11-01 19:08:07 -0700] [14549] [INFO] Worker exiting (pid: 14549)
---> Hangs for 30s
[2017-11-01 19:08:37 -0700] [13316] [INFO] Handling signal: ttin
[2017-11-01 19:08:37 -0700] [14698] [INFO] Booting worker with pid: 14698
/Users/michael/Programs/clones/airflow/airflow/www/app.py:23: FlaskWTFDeprecationWarning: "flask_wtf.CsrfProtect" has been renamed to "CSRFProtect" and will be removed in 1.0.
csrf = CsrfProtect()
/Users/michael/Programs/miaozhen/tests/airflow-test/lib/python3.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
.format(x=modname), ExtDeprecationWarning
127.0.0.1 - - [01/Nov/2017:19:08:37 -0700] "GET /admin/ HTTP/1.1" 200 95063 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
[2017-11-01 19:08:38,096] [14698] {models.py:168} INFO - Filling up the DagBag from /Users/michael/airflow/dags
---> other GET requests on the same webpage, skipped here for simplicity
[2017-11-01 19:08:39 -0700] [13316] [INFO] Handling signal: ttou

现在我正在运行 apache-airflow 1.8.2 的源代码版本(即克隆源代码,检查标签,并使用 pip install -e 进行安装。) 在 virtualenv 中。但是我也尝试过:运行没有virtualenv的pypi版本(pip install apache-airflow);在没有 virtualenv 的情况下运行源版本。所有安装都存在相同的问题,因此这些差异无关紧要。

我的 Python 安装是:

$ python -VV
Python 3.6.3 (default, Oct 4 2017, 06:09:38)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)]

编辑:

我尝试在另一台机器(Ubuntu Linux 16.04 + Python 3.5)上安装并运行apache-airflow,没有问题。我也问了另外一个在 Mac 上用 Python 3.6 的人,也没有问题。我猜我的机器有什么奇怪的地方……有什么建议可以调试这个东西吗?

最佳答案

Worker 定期退出信号 ttou(表示 decrement # of processes by one)是故意的。这是 Airflow 定期“提神” worker 。根据我在 AIRFLOW-276 中阅读的内容,它添加了这个功能,刷新工作人员是为了确保他们选择新的或更新的 DAG。可以在 worker_refresh_intervalworker_refresh_batch_size 下的 Airflow 配置中修改此行为。

从查看 source ,它会在停止旧 worker 之前启动新 worker ,所以我认为这不会导致您的请求延迟。但是,您可以尝试使用 worker_refresh_batch_size = 0 禁用它。

关于python - gunicorn worker 为每个请求退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47066680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com