首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Seneca amqp传输的死信交换x-message-ttl

Seneca amqp传输的死信交换x-message-ttl
EN

Stack Overflow用户
提问于 2022-11-03 10:32:42
回答 1查看 22关注 0票数 0

我正在更新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。

代码语言:javascript
复制
{
          queues: {
            prefix: "seneca.add",
            separator: ".",
            options: {
              durable: true,
              arguments: {
                "x-dead-letter-exchange": "seneca.dlx",
                "x-message-ttl": 360000
              }
            }
          }
        }

我检查了更改日志,但没有得到更改的内容,因此我得到了这个错误。

EN

回答 1

Stack Overflow用户

发布于 2022-11-10 09:31:16

我已经找到了解决办法。在seneca协议版本2.2.0中,他们更新了选项。将配置选项更新为

老康菲

代码语言:javascript
复制
{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

代码语言:javascript
复制
{amqp: {
    listener: {
      channel: {
        prefetch: 1
      },
      queues: {
        prefix: "seneca.add",
        separator: ".",
        options: {
          durable: true,
          arguments: {
            "x-dead-letter-exchange": "seneca.dlx",
            "x-message-ttl": 360000
          }
        }
      }
    }
  }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74301593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档