gpt4 book ai didi

node.js - amqpassertQueuebork一个连接的含义

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:21 25 4
gpt4 key购买 nike

在amqp的assertQueue API文档中,它指出:

断言队列存在。给定相同的参数,此操作是幂等的;但是,如果队列已经存在但具有不同的属性,它将中断 channel (参数字段中提供的值可能会或可能不会用于中断目的;检查中断者的文档,我的意思是经纪人的文档)。

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

我想问“bork(ing)” channel 是什么意思。我尝试用谷歌搜索,但找不到任何相关内容。

最佳答案

Bork:英文意思是阻碍某事。

根据问题中的文档,它说

however, it will bork the channel if the queue already exists but hasdifferent properties

这意味着如果您尝试创建一个与已存在的 channel 具有相同属性的 channel ,则不会发生任何事情,因为它是 idempotent (意味着重复相同的操作不会产生不同的结果,例如,获取 id 为 123 的数据的 REST API GET 请求,除非更新,否则每次都会返回相同的数据,这是一个解释无能概念的非常有趣的视频),但是如果您尝试创建一个具有相同名称但不同属性的 channel , channel 创建将被“borked”,即被阻塞。

在下面的代码中,我们再次创建 channel ,

 var ok0 = ch.assertQueue(q, {durable: false});// creating the first time
var ok1 = ch.assertQueue(q, {durable: true});// creating the second time again with different durable property value

抛出错误

"PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'hello' invhost '/': received 'true' but current is 'false'"

这意味着您正在尝试创建具有不同属性的相同 channel ,即持久属性与现有 channel 不同,因此它已被中断。

[2]:@Like Bakken 的回答

关于node.js - amqpassertQueuebork一个连接的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144255/

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