Heroku一个请求产生两个响应崩溃我的应用程序

时间:2013-06-06 21:34:40

标签: python django heroku gunicorn procfile

在我的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个网络dynos正在运行,还有1个工作人员dyno。我试图缩小到1个web dyno和1个worker,同样的bug。然后是0 dynos,重新启动1 web dyno,仍然是0 worker,同样的bug。

与Heroku路由器相关的东西可能会两次调用dyno,或者可能不会。

帮助?

1 个答案:

答案 0 :(得分:0)

默默地,它停止了发生。这可能是Heroku中的路由问题影响了我的应用程序。