2012-06-04 4 views
0

이 쿼리는 내 Google Summer of Code project과 관련 있습니다. 기본적으로, 나는 다수의 지정된 이미지 구축 노드에 작업을 위임하는 마스터 노드를 가지고있다. 지금은 매뉴얼 인 'scp'를 사용하여 'ssh'전략을 사용하여 원격 실행을 수행합니다. 따라서 일정이나 작업 배포가 자동으로 필요하지 않습니다.이 작업에 적합한 셀러리?

현재 현재의 전략보다 나은 솔루션을 사용하려고합니다. 나는 '셀러리'를보고 있었고 그걸 가지고 조금 놀랐습니다. 나는 원격으로 간단한 일을 할 수 있었다. 그러나 지금까지 내가 알기로 셀러리는 작업자 노드의 소스 파일이 필요합니다. 셀러리가 자동 작업 분배/스케줄링을 수행 할 것인지 여부도 조사 할 수 없었습니다. 브로커로 RabbitMQ를 사용하고 있습니다.

나는 이것에 익숙하지 않으므로 더 많은 경험을 가진 사람이라면 누구나 셀러리가 좋은 선택인지 또는 이에 더 적합한 것이 있는지 명확하게 제안 할 수있을 것입니다.

답변

0

약간 혼란 스러웠습니다. 그리고 나는 그것을 알아 냈습니다. Celery는 동일한 브로커를 사용하는 작업자 중 하나를 자동으로 선택합니다. 예, 예약 및 배포를 수행합니다.

+1

음, 배포를 수행하는 기본 메시지 대기열이며 구성하는 데 선택한 대기열의 종류 (어떤 종류의 교환을 첨부할지)에 따라 다릅니다. 팬 아웃 교환을 구성하는 경우 4 명의 작업자를 생성하여 교환기의 두 대기열 각각에 두 개를 연결 한 다음 각 작업은 교환기의 각 대기열에서 하나씩 두 명의 작업자를 실행하게됩니다. AMQP는 매우 유연한 아키텍처이며 Celery가이를 활용하지 못하게합니다. –

0

셀러 리는 작업자 소스에 액세스해야합니다. 셀러 리는 실제로 다르게 실행되는 함수 주변의 데코레이터 일뿐입니다. 그러나 작업자 노드가 무엇인지 변경할 수 있습니다. 마스터 노드에 정확히 수행 한 작업 (scp, ssh)을 수행하는 python 스크립트를 작성하기 만하면됩니다. 이것이 "근로자"가됩니다. 그런 다음 마스터 노드에서도 제어 스크립트 (피드 파일 위치, URL 등등)를 만들고 Celery를 사용하여 실행합니다. 셀러리 서버는주기 예약 ((here))과 같은 crontab을 통해 작업 스케줄링, 배포를 처리하거나 실행중인 작업 (here)의 결과를 기다린 다음 완료되면 새 작업을 예약하게 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. –

관련 문제