저는 Django 프로젝트에서 셀러리를 시작했습니다.이 특정 문제에 다소 매달 렸습니다. 기본적으로 다른 작업자에게 장기 실행 태스크를 배포해야합니다. 이 작업은 실제로 여러 단계로 나뉘며 각 단계는 완료하는 데 상당한 시간이 걸립니다. 따라서 일부 단계가 실패하면 동일한 작업자가 완료된 단계의 결과를 다시 사용하여이 태스크를 재 시도하도록하십시오. 셀러리가 특정 서버에 작업을 배포하기 위해 라우팅을 사용하고 있지만이 특정 문제에 대해서는 아무 것도 찾을 수 없다는 것을 알고 있습니다. 내 중개인으로 RabbitMQ를 사용합니다. 당신은 모든 celeryd 인스턴스를 가질 수같은 작업자를 사용하여 셀러리를 다시 작성하는 방법은 무엇입니까?
6
A
답변
11
작업자의 호스트 이름의 이름을 따서 명명 큐에서 소비 :
celeryd -l info -n worker1.example.com -Q celery,worker1.example.com
worker1.example.com
에 호스트 이름을 설정하고 같은 이름의 큐뿐만 아니라 기본 대기열에서 소비됩니다 (celery
).
task.apply_async(args, kwargs, queue="worker1.example.com")
similary가 재시도 직접하기 :
task.retry(queue="worker1.example.com")
또는 같은 노동자로 재 시도를 직접 :
다음 당신이 사용할 수있는 특정 직원에게 작업을 지시하는task.retry(queue=task.request.hostname)
관련 문제
- 1. 셀러리를 사용하여 작업을 지연시키는 방법은 무엇입니까?
- 2. 별도의 기계에 샐러리 작업자를 설치하는 방법은 무엇입니까?
- 3. 백그라운드 작업자를 다시 시작하십시오.
- 4. 컬렉션을 다시 작성하는 방법은 무엇입니까?
- 5. 셀러리를 사용하여 task_id를 어떻게 선택합니까?
- 6. 체인의 일부인 실패한 셀러리를 다시 시도합니다.
- 7. 솔루션의 모든 프로젝트를 다시 작성하는 방법은 무엇입니까?
- 8. Django 응용 프로그램에서 셀러리를 사용하여 작업을 실행하는 방법은 무엇입니까?
- 9. 셀러리를 사용하여 다른 작업자 풀을 구성하는 방법은 무엇입니까?
- 10. 셀러리를 사용하여 노드간에 작업을 균등하게 분배하는 방법은 무엇입니까?
- 11. Makefile을 android.mk로 다시 작성하는 방법은 무엇입니까?
- 12. 리소스 구문에 매개 변수를 사용하여 link_to를 다시 작성하는 방법은 무엇입니까?
- 13. 전체 텍스트 인덱스를 다시 작성하는 방법은 무엇입니까?
- 14. jQuery 함수를 다시 작성하는 방법은 무엇입니까?
- 15. 작업 내가 장고 - 셀러리를 사용하고이 같은 작업이
- 16. 같은 컬렉션의 여러 멤버를 사용하여 JPQL 쿼리를 작성하는 방법은 무엇입니까?
- 17. linq-to-entities를 사용하여 selectbyexample과 같은 쿼리를 작성하는 방법은 무엇입니까?
- 18. python과 같은 인쇄 방법을 작성하는 방법은 무엇입니까?
- 19. 다음과 같은 경우에 쿼리를 작성하는 방법은 무엇입니까?
- 20. pthread_cond_signal과 pthread_cond_wait을 사용하여 pthreads 작업자를 올바르게 만드는 방법은 무엇입니까?
- 21. 명령 줄을 사용하여 Github에 공동 작업자를 추가하는 방법은 무엇입니까?
- 22. vb.net에서 백그라운드 작업자를 죽이는 방법은 무엇입니까?
- 23. django 및 셀러리를 사용하여 주기적으로 작업 수행
- 24. 콜백을 사용하여 jQuery 함수를 작성하는 방법은 무엇입니까?
- 25. quartzScheduler grails를 다시 작성하는 방법
- 26. AS3 작업자를 사용하여 소리 녹음하기
- 27. 배경 작업자를 사용하여 올바른 방법입니까
- 28. Microsoft.Build.BuildEngine을 사용하여 Silverlight 프로젝트를 작성하는 방법은 무엇입니까?
- 29. PHP에서 셀러리를 사용 하시겠습니까?
- 30. 기본 "실행 프로그램"응용 프로그램을 다시 작성하는 방법은 무엇입니까?
답변 해 주셔서 감사합니다. 나는 이것이 내가 찾고있는 것이라고 생각한다. 우리가 큐 이름을 retry()에 전달할 수 있다는 것을 몰랐지만, 지금은 많은 의미가 있습니다. – dangmai
'celeryd'는'celery worker'를 사용합니다. – user
Windows에서는'% computername %'을, 리눅스에서는'\'hostname \ "를 사용하여 명령 행을 작성하십시오. – ubershmekel