Heroku один запрос порождает два ответа, который вылетает мое приложение
В моем приложении Heroku Django для потока регистрации учетной записи пользователя есть типичный запрос активации учетной записи, который происходит, когда пользователь получает электронное письмо со специальным URL-адресом "активации". В приложении эта активация должна происходить только один раз. Единственным идентификатором в этом URL является токен активации. Токен используется для "активации" учетной записи, а также для идентификации пользователя (получения его имени пользователя из БД). Как только этот токен используется, он удаляется.
По этой причине активация должна происходить только один раз. Однако по очень странным причинам, когда запрос отправляется в мое приложение Heroku, он дважды запускает функцию активации. Я совершенно уверен, что это не ошибка программирования в приложении, потому что при локальной разработке активация не вызывается дважды, и ни в промежуточной среде (которая также есть в Heroku, почти идентична настройкам производства). Это происходит только в производстве.
Вот что я вижу в heroku logs
: http://pastebin.com/QeuP74fa
Первый квартал этого журнала интересен. Обратите внимание, что в какой-то момент активация прошла успешно и была предпринята попытка перенаправить пользователя на следующую правильную страницу: GET Request to /iro/dashboard. Но затем после этого происходит запрос на активацию, следовательно, сбой, который вы видите, связанный с объектом "NoneType", не имеет атрибута...
Мой Procfile выглядит так
web: newrelic-admin run-program gunicorn --bind=0.0.0.0:$PORT --workers=1 --log-level=debug iroquote.wsgi:application
worker: python manage.py rqworker high default low
Когда я обнаружил ошибку, у меня работало 2 веб-динамометра и 1 рабочий. Я попытался уменьшить до 1 веб-динамо и 1 работника, та же ошибка. Потом вообще 0 динамов, и перезапустил 1 веб динамо, еще 0 рабочий, та же ошибка.
Может быть, что-то связано с тем, что маршрутизатор Heroku дважды вызывает динамо, или нет.
Помогите?
1 ответ
Молча, это прекратилось. Вероятно, это проблема маршрутизации в Heroku, которая повлияла на мое приложение.