姜戈; Bugsnag 不适用于带有 Eventlet 的 Gunicorn

Django; Bugsnag doesn't work with Gunicorn with Eventlet

使用我们基于 Django 的 REST-API 服务器测试 BugSnag。我有一个 API 端点故意崩溃只是为了测试它,我的视图使用的某个序列化器中的某个人。

在我自己的 settings.py 我有:

BUGSNAG = {
    'api_key': '[redacted]',
    'app_version': "1.0",
    'project_root': "/path/to/my/project/folder/where/manage.py/is",
    'release_stage': "development",
    'notify_release_stages': ['development', 'staging', 'production']
}


MIDDLEWARE = (
    'bugsnag.django.middleware.BugsnagMiddleware',
    <all other middleware>
)

当我 运行 我的服务器这样时: gunicorn myproj.wsgi -b 0.0.0.0:8000 --reloadpython manage.py runserver BugSnag 正确报告所有崩溃。

但是,当我使用gunicorn myproj.wsgi -b 0.0.0.0:8000 --reload --worker-class eventlet BugSnag 在发生异常时停止发送错误报告。我对这种行为的唯一线索是:

2020-02-08 02:34:37,363 - [bugsnag] ERROR - Notifying Bugsnag failed wrap_socket() got an unexpected keyword argument '_context'

gunicorneventlet worker class 一起使用时,为什么 BugSnag 停止工作?我在这里完全不知所措。网上对该主题的引用为零,就好像这个问题只发生在我的电脑上……不是很令人鼓舞。

回滚到 Python 3.6.5 以使其工作 -- Eventlet 有一个 SSL 问题,Python 3.7 仍未修复。它在 3.7

上几乎不可用