我正在更新seneca传输npm包从2.1.0到2.2.0.
在启动seneca.js微服务时,我会遇到以下错误。
{“消息”:“通道关闭”,“stackAtStateChange”:“堆栈捕获:服务器关闭的通道: 406 (前提条件-失败),消息"PRECONDITION_FAILED -不等效的arg‘x- message -ttl’,用于vhost‘/’中的队列'seneca.add.role:worker.cmd:any‘:接收'signedint’类型的'60000‘值,但当前是’signedint‘类型的'360000’值”\n在Channel.C.accept.
我对这条消息的理解是x消息-ttl值是不同的,我们在代码和rabbitmq队列中设置的是什么。我检查了兔子队列,那里的x-message-ttl时间是360000。同时也签入了代码,也就是x消息-ttl是360000。
{
queues: {
prefix: "seneca.add",
separator: ".",
options: {
durable: true,
arguments: {
"x-dead-letter-exchange": "seneca.dlx",
"x-message-ttl": 360000
}
}
}
}我检查了更改日志,但没有得到更改的内容,因此我得到了这个错误。
发布于 2022-11-10 09:31:16
我已经找到了解决办法。在seneca协议版本2.2.0中,他们更新了选项。将配置选项更新为
老康菲
{amqp: {
listen: {
channel: {
prefetch: 1
},
queues: {
prefix: "seneca.add",
separator: ".",
options: {
durable: true,
arguments: {
"x-dead-letter-exchange": "seneca.dlx",
"x-message-ttl": 360000
}
}
}
}
}}新Config
{amqp: {
listener: {
channel: {
prefetch: 1
},
queues: {
prefix: "seneca.add",
separator: ".",
options: {
durable: true,
arguments: {
"x-dead-letter-exchange": "seneca.dlx",
"x-message-ttl": 360000
}
}
}
}
}}https://stackoverflow.com/questions/74301593
复制相似问题