调用自身时,gunicorn服务器挂起

时间:2020-03-20 16:35:55

标签: python django gunicorn

我有一个在gunicorn服务器上运行的Django REST Framework服务。配置如下:

exec gunicorn \
        --pid /web/gunicorn.pid \
        --workers 4 \
        --threads 8 \
        --worker-class gthread \
        --name my-api \
        --chdir /src/api \
        --bind unix:/web/.sock \
        --timeout 300 \
        --limit-request-line 8190 \
        wsgi:application

我有两种看法:

def view1(request):
  # Call DB etc.

def view2(request):
  my_api_python_client.call_view1(request)  # Hangs!

这导致请求无限期地挂起。我了解从另一个视图调用一个视图听起来是违反直觉的,但必须这样做以利用缓存,异步调用等。

奇怪的是,当我将其作为Pycharm服务器运行时,它运行得很好!

问题-为什么我的请求从未得到处理?我该如何解决?

1 个答案:

答案 0 :(得分:0)

您应该检查gunicorn worker的配置,它必须大于1才能运行一个会自我调用的线程。

例如:(2n + 1作为处理器数量)

gunicorn app.wsgi:application --workers=4 --bind 0.0.0.0:8000 
相关问题