2013-06-06 3 views
0

Heroku Django 앱에서 사용자 계정 등록 절차에 대해 계정을 활성화하는 일반적인 요청이 있습니다. 사용자가 특별한 "활성화"URL . 앱에서이 활성화는 한 번만 발생해야합니다. 해당 URL의 유일한 식별자는 활성화 토큰입니다. 토큰은 계정을 "활성화"하고 사용자를 식별하는 데 사용됩니다 (사용자 이름을 DB에서 검색). 이 토큰이 사용되면 삭제됩니다.Heroku에서 내 요청을 두 건의 응답으로 생성했습니다.

그런 이유로 활성화는 한 번만 수행되어야합니다. 그러나, 정말 이상한 이유로, 요청이 내 Heroku 애플 리케이션에 전송되면, 그것은 activate 함수를 두 번 트리거합니다. 로컬 개발에서 활성화가 두 번 호출되지 않고 준비 환경 (Heroku에도 있지만 프로덕션 설정과 거의 동일하므로)에서이 프로그래밍상의 실수가 아니라고 저는 확신합니다. 프로덕션에서만 발생합니다. 이 http://pastebin.com/QeuP74fa

이 로그의 첫 번째 분기는 재미있다 : 여기

내가 heroku logs에서 볼 것입니다. 어떤 시점에서 활성화가 성공했고 다음 올바른 페이지로 사용자를 리디렉션하려고했습니다. 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 

처럼 보인다 dynos가 실행 중이고, 작업자 dyno가 버그를 발견했을 때. 나는 1 웹 dyno와 1 노동자, 동일한 버그로 규모를 축소하려고했습니다. 그런 다음 0 명의 dynos를 다시 시작하고 1 웹 dyno를 다시 시작했지만 여전히 0 명의 작업자, 동일한 버그가 발생했습니다.

아마도 Heroku 라우터가 dyno를 두 번 호출하거나 관련된 것일 수도 있고 그렇지 않을 수도 있습니다.

도움 말?

답변

0

조용히, 그 일이 멈추었습니다. 이것은 아마 내 애플 리케이션에 영향을 Heroku에서 라우팅 문제가 있었다.