0

在我的 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 个 web dyno 和 1 个 worker dyno。我试图缩小到 1 个网络测功机和 1 个工作人员,同样的错误。然后根本没有 0 dyno,并重新启动了 1 web dyno,仍然是 0 worker,同样的错误。

可能与两次调用测功机的 Heroku 路由器有关,也可能不会。

帮助?

4

1 回答 1

0

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

于 2013-06-07T07:43:30.120 回答