You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RabbitMQ消费消息后数据库查询返回异常数据问题排查

RabbitMQ消息消费时数据库查询异常问题记录

问题现象

创建通道通过channel.sendToQueue()方法向队列发送消息,另一个模块创建通道异步消费队列消息,消息收发流程正常,但在消费回调内执行数据库查询时返回异常数据。

发送端代码

const connect = await amqplib.connect("amqp://localhost")
const channel = await connect.createChannel()
channel.sendToQueue(newsfeedQueue, Buffer.from(JSON.stringify(user._id))) // user is the content i want to send

接收端代码

channel.consume(newsfeedQueue, async (msg) => {
      const data = JSON.parse(msg.content)
      console.log(" ocnsume data ", data)
      const storyList = await Story.find({})
      console.log("story list ", storyList)
      channel.ack(msg)
    })

测试对比

启动队列消费前直接执行数据库查询可得到预期数据,但将查询逻辑放到消费回调内则返回异常数据:

const storyList = await Story.find({})
console.log("story list ", storyList) 
// Here got the expected data 
channel.consume(newsfeedQueue, async (msg) => {
      const data = JSON.parse(msg.content)
      console.log(" ocnsume data ", data)
    // if i query here didn't get expected data
      channel.ack(msg)
    })

问题解决

经排查,问题出在测试环节,上述代码本身逻辑无问题,可正常运行。


内容的提问来源于stack exchange,提问作者Raihanur Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:52:35