2011-09-30 4 views
2

다음과 같은 공통 시나리오가 있습니다. 처리 할 항목 목록 (URL, 작업 등)과 N 작업자 노드 집합을 보유하고있는 마스터 노드입니다.분산 REST 큐의 사용 가능한 구현

각 작업자는 큐에서 항목을 팝하고 무언가를 수행 한 다음 작업이 성공적으로 완료되었음을 마스터 노드에 알립니다.

작업자가 새 항목을 마스터 노드에 푸시하여 처리 대기열에 넣을 수 있습니다.

요구 사항은 매우 간단하다 :

  • 어떤 작업이 고정 된 후 작업이 실패 할 경우,
  • (. 즉, "팝"원자입니다) 어떤 작업이 두 개의 노드 고른 않겠다 두 번
  • 실행되지 도착 제한 시간은 작업이 동시 근로자의 수는
  • 여러 노동자들이 하나의 노드에서 살 수 잠재적으로 큰
  • 처리를 위해 다시 사용할 수
  • 마스터와 작업자가 동일한 네트워크에 있다고 가정되지 않습니다.
  • pop 및 push는 REST API로 노출되어야합니다 (예 : . 내가 가진 : 큐는 언어에 얽매이지)
  • 항목

내가 간단한 경량 REST 구현을 찾을 수 없습니다 오전) (마스터 노드에 지속적으로 저장 즉, 어떤 메모리 솔루션이어야합니다 RabbitMQ, Celery, Google App Engine 및 기타 덜 성숙한 프로젝트가 많았지 만 모두 관리하기가 매우 복잡해 보이고 내가 필요한 것에 과도한 태도를 보였습니다.

내가 간과 할 수있는 해결책은 무엇입니까? http://aws.amazon.com/sqs/

+1

그리고 작업 우선 순위를 가질 수 있다면 , 그러면 후보 목록은 훨씬 더 비어있는 것처럼 보입니다 .... –

+0

안녕하세요, 어떻게 하시겠습니까? 나는 비슷한 상황에 처해 있으며 이야기를 나눌 때 좋을 것입니다. – ravi

답변

1

내가 같은 검색을 통해 갔다 :

+0

언제라도 오픈 소스입니까? :) –

+0

이 단계가 아님 –

2

아마존 SQS는 당신이 원하는 수 있습니다. 나는 셀러리가 가까이에 있다는 사실을 알아 냈습니다. (옥토봇과 같은 다른 것들도 보았습니다.) 나는 원하는만큼 단순한 것 같지 않았고, 몇 가지를 놓쳤습니다. 나는 셀러리가 상당히 단순하다는 것을 알았지 만, 내가 아직 혼합되어 있지 않은 종속성을 적당히 도입했기 때문에 대신 별다른 것을 따랐다. (에를랭 기반)

+0

감사합니다. 이것은 제가 잘 모르는 좋은 대안입니다. 나는 대부분 내 컴퓨터에 전개 가능한 것을 찾고있다. –