2017-11-06 8 views
0

, 그것은 상태 의미 연결 : AMQP assertQueue 주방장 AMQP의 assertQueue의 API 문서에서

가 존재로 큐를 주장한다. 이 연산은 동일한 인수가 주어지면 멱등수입니다. 그러나 큐가 이미 존재하지만 다른 속성을 가진 경우 (큐 필드에 제공된 값은 보킹 목적으로 계산 될 수도 계산되지 않을 수도 있습니다.), 브로커의 문서를 참조하십시오.

http://www.squaremobius.net/amqp.node/channel_api.html#channel_assertQueue

나는 그것이 (보내고) BORK 채널에 의해 무엇을 의미하는지 질문하고있다. 나는 구글을 시도했지만 관련성있는 것을 찾을 수 없다.

답변

0

RabbitMQ 팀은 this mailing list을 모니터링하며 때때로 StackOverflow에 대한 질문에만 답변합니다.

두 번째로 다른 속성을 사용하여 assertQueue을 두 번 호출 해 보았습니까? 당신은 당신의 자신의 질문에 매우 빨리 대답했을 것입니다. 그런 다음

#!/usr/bin/env node 

var amqp = require('amqplib'); 

amqp.connect('amqp://localhost').then(function(conn) { 
    return conn.createChannel().then(function(ch) { 
    var q = 'hello'; 
    var ok0 = ch.assertQueue(q, {durable: false}); 
    return ok0.then(function(_qok) { 
     var ok1 = ch.assertQueue(q, {durable: true}); 
     return ok1.then(function(got) { 
      console.log(" [x] got '%s'", got); 
      return ch.close(); 
     }); 
    }); 
    }).finally(function() { conn.close(); }); 
}).catch(console.warn); 

RabbitMQ를 시작하고 테스트 코드를 실행

나는이 테스트 프로그램을 만들 this code을 사용했다. 다음과 같은 출력이 표시되어야합니다.

$ node examples/tutorials/assert-borked.js 
events.js:183 
     throw er; // Unhandled 'error' event 
    ^

Error: Channel closed by server: 406 (PRECONDITION-FAILED) with message "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'hello' in vhost '/': received 'true' but current is 'false'" 
    at Channel.C.accept