1

排他的キュー (一度に許可されるコンシューマーは 1 つだけ) にサブスクライブすると、キューがオーバーサブスクライブされる (既にコンシューマーがある) 場合、node-amqp は例外をスローします。

  • .on("error",cb) 構文を使用してみました。
  • エラー ドメインを試しました (ノード 0.10.0)
  • try/catch は明らかに機能しませんでした

これが私のサブスクリプション ラインですが、特別なことではありません。

queue.subscribe({ack: true, prefetchCount: 1, exclusive: exclusive}, cbExecute).addCallback((ok) -> listeners[type] = ok.consumerTag);

キューが使用中の場合、未処理の例外がスローされます。

ACCESS_REFUSED - queue 'respQ' in vhost 'brkoacph' in exclusive use

node-amqp の内部を見ると、エラーが発生したときにタスクが独立したコンテキストで実行されるように、モジュール内に独立したタスク キューが実装されていることがわかります。

回避策/修正はありますか? ...または私は何か間違ったことをしていますか?

4

1 に答える 1

2

あなたがしたいことは、 のエラーをキャッチすることだと思いますAMQP connection。あなたが述べたようnode-amqpに、別のコンテキストでエラーをキャプチャしますが、接続で聞くことができます:

yourConnectionVar.on( 'error', function(err) {
  //do something
  console.log('An error occurred' + err);
});

これが役立つことを願っています。

乾杯!

于 2014-05-19T15:50:03.743 に答える