gpt4 book ai didi

node.js - RabbitMQ 和 Node amqp : Exchange in confirmed mode does not confirm - why?

转载 作者:搜寻专家 更新时间:2023-10-31 22:29:30 34 4
gpt4 key购买 nike

我正在编写一个依赖于 RabbitMQ 的 Node.js 应用程序。我正在使用 node-amqp 作为连接到 RabbitMQ 的首选库。

建立到 RabbitMQ 的连接后,我要做的第一件事就是创建交换:

var options = { autoDelete: false, confirm: true, durable: true, type: 'direct' };
connection.exchange('myExchange', options, function (myExchange) {
// ...
});

这非常有效。如您所见,我正在使用 confirm: true 创建交换,因此我希望交换之后处于确认模式。

现在,当我尝试发布消息时出现问题:

var options = {};
myExchange.publish('', { data: 'foobar' }, options, function () {
// ...
});

问题是永远不会调用 publish 函数的回调 - 尽管消息已成功发布(正如我在 RabbitMQ 的 Web 管理工具中看到的那样)。

我对确认模式的理解有误吗?这是 node-amqp 的错误吗?

任何帮助将不胜感激:-)

最佳答案

在适当的 GitHub issue 中回答了问题: npm 上的 node-amqp 是旧版本...当前的解决方法是直接使用 GitHub 的 master 分支。

这意味着,在使用 npm 安装时使用 https://github.com/postwait/node-amqp/tarball/master


2013 年 11 月更新

由于这些天我再次使用 RabbitMQ(在我最初的问题后大约一年),我认为更新 node-amqp 的现状可能是个好主意。

不幸的是,node-amqp 的状态与一年前完全一样:npm 发布的版本几乎无法使用。我一年前遇到的一些错误仍然存​​在(包括我的问题中的错误),因此给定的解决方法仍然有效:从 GitHub 获取最新的 master。

关于node.js - RabbitMQ 和 Node amqp : Exchange in confirmed mode does not confirm - why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662413/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com