django - Django Gunicorn 不同类型的超时
问题描述
我使用 Gunicorn(使用 Heroku)和 Sentry 为 Django 应用程序提供监控服务。我经常在 Sentry 上收到 2 种不同类型的超时错误:
SystemExit 1
在gunicorn/workers/base.py
第handle_abort
201 行WORKER TIMEOUT (pid:12345)
在 Gunicorn 级别
对于第二个,它在 Heroku 中产生 H13 错误,根据文档意味着:
当您的网络测功机中的进程接受连接但随后关闭套接字而不向其写入任何内容时,将引发此错误。可能发生这种情况的一个示例是,当Unicorn Web 服务器配置的超时时间短于 30 秒,并且在超时发生之前工作人员尚未处理请求。在这种情况下,Unicorn 在写入任何数据之前关闭连接,从而导致 H13。
这很清楚。
但是对于System Exit 1
,我读到它是类似票证的超时,但我不确定到底有什么区别。
解决方案
SystemExit 只是通用的“停止进程”信号,可能是相同的错误被 Sentry 捕获两次(一次作为异常抛出,一次以 level=error 记录)。
推荐阅读
- linux - 如何在服务器上提交更改并从代码存储库中提取更新而不会发生冲突?
- javascript - Jinja功能不断更新
- sdk - Flutter 光栅崩溃:FontStyle::registerLanguageList 中的 recursive_mutex 解锁崩溃
- zigbee - 使用 USRP Source 检测 Telosb 排放
- python - 如何使用 open cv 在窗口中打印消息
- c# - 如何模拟(MOQ)已密封设置 AbstractAcquireTokenParameterBuilder 的 IConfidentialClientApplication?
- git - Git 偏移 PowerShell 中的文本
- vb.net - 从 Sharepoint 下载空白和 0KB 的文件
- amazon-web-services - 我如何在 aws _route_table 中做动态路由?
- php - 如何根据 Laravel 中的选定选项在 mysql 数据库的文本框中显示数据