首页 > 解决方案 > Django Gunicorn 不同类型的超时

问题描述

我使用 Gunicorn(使用 Heroku)和 Sentry 为 Django 应用程序提供监控服务。我经常在 Sentry 上收到 2 种不同类型的超时错误:

  1. SystemExit 1gunicorn/workers/base.pyhandle_abort201 行
  2. WORKER TIMEOUT (pid:12345)在 Gunicorn 级别

对于第二个,它在 Heroku 中产生 H13 错误,根据文档意味着

当您的网络测功机中的进程接受连接但随后关闭套接字而不向其写入任何内容时,将引发此错误。可能发生这种情况的一个示例是,当Unicorn Web 服务器配置的超时时间短于 30 秒,并且在超时发生之前工作人员尚未处理请求。在这种情况下,Unicorn 在写入任何数据之前关闭连接,从而导致 H13。

这很清楚。

但是对于System Exit 1,我读到它是类似票证的超时,但我不确定到底有什么区别。

标签: djangoherokutimeoutgunicornsentry

解决方案


SystemExit 只是通用的“停止进程”信号,可能是相同的错误被 Sentry 捕获两次(一次作为异常抛出,一次以 level=error 记录)。


推荐阅读