2017-01-01 10 views
3

현재 동시성을 위해 셀러리 기본 프리 프레임을 사용하고 있으며 Eventlet을 사용하려고합니다. Django Celery Eventlet - "No address found"오류가 발생했습니다.

나는 Eventlet를 설치하려고하고 동시성을 위해 그것을 사용하지만, 나는 오류가 다음 무엇입니까 :

[2017-01-01 04:11:14,233: ERROR/MainProcess] consumer: Cannot connect to amqp://application:**@rabbit:5672//: [Errno -2] No address found. 

을하지만 기본 prefork의와 잘 작동하고 내가 작업 비동기를 실행할 수 있습니다.

나는 현재 장고 1.10와 셀러리를 사용하고 4.0.1

-------------- [email protected] v4.0.1 (latentcall) 
---- **** ----- 
--- * *** * -- Linux-4.4.0-57-generic-x86_64-with-Ubuntu-16.04-xenial 2017-01-01 03:59:11 
-- * - **** --- 
- ** ---------- [config] 
- ** ---------- .> app:   fivefrets:0x7f97ca281a58 
- ** ---------- .> transport: amqp://fivefrets:**@rabbit:5672// 
- ** ---------- .> results:  disabled:// 
- *** --- * --- .> concurrency: 10 (eventlet) 
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker) 
--- ***** ----- 
-------------- [queues] 
      .> celery   exchange=celery(direct) key=celery 

사람의 도움, 나는 인터넷 검색 답을 얻을 수 없었다하시기 바랍니다 수 있습니다.

질문이 있으시면 알려주세요.

내가 무엇이 누락되었는지 확실하지 않음

답변

1

"주소를 찾을 수 없습니다"는 DNS 확인 오류로 보입니다. rabbitmq 서버의 주소를 확인할 수 있으면 문제는 Eventlet에있을 수 있습니다.

Eventlet 0.20.0을 사용하는 경우 DNS 해상도가 손상 될 수 있습니다. 참조 : https://github.com/nameko/nameko/issues/392

그런 경우 pip install --upgrade eventlet==0.19.0 또는 pip install --upgrade eventlet==0.20.1과 같은 다른 버전의 이벤트 릿을 사용할 수 있습니다.

+1

감사합니다! 해결 방법은 https://github.com/nameko/nameko/issues/392 pip install -U https://github.com/eventlet/eventlet/archive/f266be30f5c3ff1889e9ac3f0bad698a49d40e99.zip –

+1

입니다. 정확한 문제를 지적 해 주셔서 감사합니다. https://github.com/nameko/nameko/issues/392 –

+0

'eventlet == 0.20.1'로 변경하십시오. – temoto

0

eventlet==0.20.0으로 오류가 발생하면 구성이 잘못되었다는 의미입니다. /etc/resolv.confsearch domain으로 설정했지만 관련 DNS 이름을 rabbit.domain 네임 서버에만 시도해야하는 상대 호스트 이름 rabbit을 보내고 있습니다.

적절한 솔루션 옵션 :

  • rabbit.local에 네트워크, 변화의 resolv.conf, DNS 레코드와 응용 프로그램 CONFIGS에 .local 도메인을 소개합니다. 모든 것을 고려하면 이것이 최선의 방법입니다. 항상 완벽한 방법보다 제대로

를 해결 완전한 호스트 이름을 수는 패치를 포함 eventlet>=0.20.1 업그레이드 -

  • 응용 프로그램 CONFIGS rabbit. 단일 수준의 호스트 이름에 /etc/resolv.conf
  • 추가 후행 점에서 search 줄을 제거 최상위 쿼리를 정규화 된 것처럼 쿼리합니다 (이 경우 rabbit.)