2017-02-22 1 views
3

I have read TTL이 만료되면 RabbitMQ 서버가 대기열에서 메시지를 지울 수 있도록 RabbitMQ (대기열 당)에서 TTL (Time To Live) 서버는 TTL이 만료 된 메시지가 처리되지 않도록 보장합니다.Servicestack을 사용하여 RabbitMQ 대기열에 TTL을 설정

나는 service stack to connect to various rabbitMq's을 사용하고 있습니다. 특히 나는 그것을 rabbitMQ가 제공하는 RPC 기능에 대한 정면으로 사용하기 위해 사용하고 있으며, 꽤 잘 작동합니다.

대기열의 TTL을 선언 할 때 설정하는 정보를 찾을 수 없습니다 (또한 코드 지원을 볼 수 없습니다). 지금까지 알 수 있듯이 대기열 생성은 서비스 스택 구현에 포함되어 있습니다.이 구현은 전송 계층에 관계없이 단순화 된 서비스 추상화를 제공하기 위해 많은 대기열 세부 정보를 추상화합니다.

(서비스 스택을 사용하여 토끼 MQ에 TTL을 설정하는 것이 가능합니까?) 또는 향후이 작업을 수행 할 수 있습니까?

답변

3

난 당신이 옵션 토끼 MQ Queue의 주제는있는 새 CreateQueueFilter로 지정할 수 있습니다 생성 얻을 무엇을 사용자 정의 할 수있는 것이다 필터, 예를 들어 추가했습니다 :

container.Register<IMessageService>(c => 
    new RabbitMqServer(ConnectionString) 
    { 
     CreateQueueFilter = (queueName, args) => 
     { 
      if (queueName == QueueNames<MyRequest>.In) 
      { 
       args["x-message-ttl"] = 60000; 
      } 
     } 
    }); 

이 변경 V4에서 사용할 수 있습니다. 5.7+는 이제 available on MyGet입니다.

+2

당신은 내 영웅입니다. 진심으로! 감사! – Jay

관련 문제