2017-02-01 5 views
0

나는 rabbitmq에 기존 대기열을 구독하는 작업자가 있습니다. 중복을 위해 같은 대기열에 연결하는 다른 작업자를 추가하기로 결정했습니다.기존 RabbitMQ 대기열에 독점적으로 연결

첫 번째 작업자가 대기열에 대한 독점적 인 연결을 확보하여 두 번째 작업자가 메시지를 대기열에서 제외하고 대기 작업자 역할을 수행하도록 설정할 수 있습니까?

+0

그래서 기본적으로 한 순간에 오직 한 명의 소비자 만 대기열을 사용하기를 원합니다. – cantSleepNow

+0

예, 작업자가 장애 조치되는 경우 – Jonny

답변

0

음 ... 대기열을 선언 할 때 exclusive 플래그를 설정할 수 있습니다. 이는 그것을 선언 한 클라이언트에게만 "액세스 권한"을 부여합니다.

경우에 큐가 이미 존재하므로 exclusive 플래그를 true로 설정하여 다시 선언 할 수 없습니다. 큐를 다른 사람이 사용하기 위해 미리 작성 했으므로이 플래그는 false라고 가정합니다.).

한 번에 한 명의 소비자 만 원한다는 것을 고려하면 몇 가지 해결책이 있습니다. 소비자를 산란시키고 단 한 순간에 단 하나만 살아 있는지 확인하는 일종의 소비자 워치 독이 있어야합니다. 실제로는 하나의 소비자 만 모니터링하고 차단되거나 다시 죽는 경우 다시 시작합니다.

consumer priorities으로 뭔가를 시도하고 우선 순위 소비자가 더 큰 프리 페치를 가지도록 조정할 수 있습니다. 그러나 나는 그것이 당신이 필요로하는 것에 적합 할 수 있다고 생각하지 않습니다.