小编jtl*_*ton的帖子

gunicorn 偶尔会冻结,直到工作人员在带烧瓶的简单 docker web 应用程序中超时

我用 Flask 和 gunicorn 构建了一个简单的 docker web 应用程序。一切正常,但有时在发出请求时,响应会挂起。在工人超时之前,我看不到任何日志记录。因此,似乎该工作人员正忙于某事,超时,然后新工作人员接收请求并立即响应。

我只用 1 名工人设置了它。我知道我可以添加另一个工人。但除了我的手动戳之外,没有其他要求。没有其他事情发生。所以我非常好奇这个工人或主要的 gunicorn 工人还会在容器中做什么(心跳,错误处理那么昂贵)?

我的 Dockerfile:

FROM python:3.6-slim

WORKDIR /app

COPY . .

RUN pip install -r requirements.txt --no-cache-dir

EXPOSE 5000

CMD ["gunicorn", "-w", "1", "-t", "30", "--worker-tmp-dir", "/dev/shm", "-b", "0.0.0.0:5000", "app:app"]
Run Code Online (Sandbox Code Playgroud)

我的微不足道的应用程序:

import logging
import model
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.errorhandler(Exception)
def handle_error(e):
    code = 500
    app.log_exception(e)
    return jsonify(message=str(e)), code

@app.route("/predict", methods=["POST", "GET"])
def predict():
    result = model.predict(None)
    return jsonify(result)

model = model.mcascorer()

if __name__ …
Run Code Online (Sandbox Code Playgroud)

flask gunicorn docker

6
推荐指数
1
解决办法
938
查看次数

标签 统计

docker ×1

flask ×1

gunicorn ×1