2012-07-09 4 views
4

나는 Heroku에 이미 배포 한 Django 응용 프로그램을 가지고 있습니다. 이 응용 프로그램은 메시지 대기열에 셀러리를 사용하며 문제없이 RabbitMQ를 사용하여 로컬로 실행했습니다.Django/Celery 및 CloudAMQP/Heroku의 연결 오류

불행히도이 아기를 Heroku에 배포 할 때 RabbitMQ 추가 기능을 사용할 수없고 CloudAMQP를 사용해야한다는 사실을 발견했습니다. CloudAMQP와 Heroku 모두에 대한 문서에서 셀리카를 사용할 수 있다고 믿고 있지만, 배포하려고하면 스케줄러와 작업자 프로세스의 연결 오류가 발생합니다. 그래서

2012-07-09T16:46:22+00:00 app[scheduler.1]: [2012-07-09 11:46:22,234: ERROR/Beat] Celerybeat: Connection error: [Errno 111] Connection refused. Trying again in 2.0 seconds... 
2012-07-09T16:46:23+00:00 app[worker.1]: [2012-07-09 11:46:23,852: ERROR/MainProcess] Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 2 seconds... 

내에게 Heroku의 구성 바르가 CLOUDAMQP_URL이 있습니까 있음을 유의은 문제가되지 않습니다 : 여기에 정확한 오류는?

CloudAMQP를 Django/Heroku와 함께 사용해 본 사람이라면 셀러리가 브로커에 연결할 수 있는지 확인하는 방법에 대한 지침을 줄 수 있으면 고맙겠습니다.

+0

몇 개의 작업 다이 노스가 있습니까? – danihp

답변

6

무료 계획의 3 가지 동시 연결 제한을 초과했을 가능성이 큽니다. BROKER_POOL_LIMIT을 1로 설정하면 더 잘 작동합니다.

+1

연결 한도를 초과하면 연결을 0으로 쉽게 재설정 할 수 있습니까? 내 dynos 재설정은 트릭을 수행하지 않는 것 같습니다. –

+0

@ theStreaker123 나는'heroku restart myworker -a myapp'를 사용하여 노동자들을 다시 시작합니다. – Neara

+1

@Jeff 2 년이 지났지 만 [하트 비트 설정] (https://www.cloudamqp.com/docs/python.html)이 필요하고 하트 비트가없는 연결을 강제 종료해야합니다. CAMQP 중개자 URL에''? heartbeat = 30''을 덧붙여서 CloudAMQP 하트 비트를 설정할 수도 있습니다. 그러나 나는 그것이 문서화되어 있지 않다는 것을 알고 있습니다. – grokpot

4

settings.py 파일 상단에이 번호가 있는지 확인하십시오.

import djcelery 
djcelery.setup_loader() 
+0

StackOverflow에 오신 것을 환영합니다. 답변을 게시 해 주셔서 감사합니다. – davidethell