Ruby 스크립트 (Bunny 사용)에서 RabbitMQ에 메시지를 게시하고 node.js 서버 (node-amqp 사용)에서 메시지를 사용하려고합니다.RabbitMQ/AMQP 처리되지 않은 채널 오류 - NOT_FOUND
첫 번째 메시지가 성공적으로 도착,하지만 오류가 Node.js를 내부에 기록되고 연결이 닫히고 더 이상 메시지가 수신되지 :
mu:charlie-node tom$ node charlie.js
22 Jul 09:11:04 - Running in development environment.
22 Jul 09:11:04 - Connected to AMQP.
22 Jul 09:11:04 - {"build_id":1234}
Unhandled channel error: NOT_FOUND - unknown delivery tag 1
내가 교환에 두 개의 메시지를 게시하는 경우와 그런 다음 node.js 서버를 실행하십시오. 오류가 기록되기 전에 두 메시지가 모두 표시되는 것을 볼 수 있습니다. 이는 RabbitMQ가 비어있을 때 RabbitMQ가 교환 또는 대기열을 닫고 있음을 나타냅니다. 그러나 autoDelete를 false로 설정 했으므로 두 가지 모두에서 false로 설정해야합니다.
제안 사항?
내 Node.js를 스크립트는 다음과 같이 보입니다 :
var amqpConnection = amqp.createConnection({ host: config.rabbitmq.host });
amqpConnection.addListener('ready', function() {
sys.log("Connected to AMQP.");
var exchange = amqpConnection.exchange('job_exchange', {
type : 'topic',
passive : false,
durable : true,
autoDelete : false
})
exchange.addListener('open', function() {
var queue = amqpConnection.queue('arthr_queue', {
passive : false,
autoDelete : false,
durable : true,
exclusive : false
});
queue.bind(exchange, '#');
queue.subscribe(function(message) {
sys.log(message.data.toString());
});
});
});
을 그리고처럼 내 루비 스크립트 보이는 :이 노드 AMQP의 버그라고 생각
require 'rubygems'
require 'bunny'
require 'json'
b = Bunny.new(:logging => true)
b.start
job_exchange = b.exchange('job_exchange',
:type => :topic,
:durable => true,
:auto_delete => false,
:passive => false
)
message = {
:build_id => 1234
}
job_exchange.publish(message.to_json, :key => 'arthr.rebuild')
b.stop
완벽한 - 그것이 나를 위해 그것을 해결합니다. 감사! – tomtaylor