2016-10-27 5 views
0

나는 RabbitMQ 교환에서 정보를 검색하는 방법에 대해 지금 몇 시간 동안 찾고 있습니다. RabbitMQ X-delayed plugin : 교환기에서 데이터 처리에 액세스하는 방법?

내 목표를 설명하게

:

내가 Gmail의 API를 굽기 방지하기 위해 시스템을 설계 내 응용 프로그램 (초당) 한계를 호출합니다. 이렇게하려면 한 시간 내에 전송을 조정하는 cron을 설정합니다. 기본적으로 cron에서 지연을 정의한 다음 지연된 대기열에 데이터를 푸시합니다. 지연 대기열 자체는 x 지연 지연 교환기에 연결됩니다 ( 직접).). 이 부분은 꽤 잘 작동합니다.

또한 대기열에서 전자 메일을 소비하고 보내는 소비자가 있습니다. 그것은 완벽하게 작동합니다.

내 문제는 여기에 있습니다. 사용자가 직접 처리해야하는 일부 조치는 최대한 빨리 보내야합니다. 따라서 지연된 교환에서 대기열로 보내질 다음 몇 가지 지연된 메시지를 검색하여 두 개의 다음 지연된 메시지 사이에이 새 메시지를 넣고 싶습니다.

예 : my-delayed- exchange [message1: will be published in 3000ms, message2: will be published in 6000ms] : messageToSendAsap: will be published in 4500ms]을 삽입하면 API 제한을 제어 할 수 있습니다.

누구나이 방법을 듣고 있습니까?

미리 PS에 감사하십시오 github page of the plugin의 예에 기초하여 AMQP LIB

답변

0

와 NodeJS에서 I 코드, 당신은 단순히 하나의 x-delay 값을 설정할 수 있습니다 (I은 제로가 될 수 없다고 생각). 즉, X가 지연된 메시지 M1과 Y가 지연된 메시지 M2를 보내므로 Y 메시지 YX가 M2 이전의 대기열에 배달됩니다.

또한 메시지를 즉시 보내려는 경우 (예를 들어서 작성한 다음 두 가지 사이가 아님) 간단히 다른 "클래식"직접 처리 (지연없이)를 할 수 있습니다.