【问题标题】:IORedis or (node_redis) callback not firing after calling custom Redis commands/modules调用自定义 Redis 命令/模块后,IORedis 或 (node_redis) 回调未触发
【发布时间】:2019-06-28 17:01:00
【问题描述】:

在 nodejs 应用程序的 websocket 消息事件中使用 redis 客户端(ioredis 或 node_redis)时,不会立即触发任何命令的回调。 (操作确实发生在 redis 服务器上)

奇怪的是,第一个命令的回调会在我发送第二条消息后触发,而第二个的回调会在我发送第三条消息后触发。

wss.on('connection', (socket, request) => {

     socket.on('message', (data) => {

      console.log("will send test command")
      this.pubClient.hset("test10", "f1","v1", (err,value) => {
          //callback not firing first time
          console.log("test command reply received")
       })

    })

}

尽管在应用程序的其他部分,甚至在如下所示的 on 连接中,redis 命令仍按预期工作。

wss.on('connection', (socket, request) => {

    console.log("will send test command")
    this.pubClient.hset("test10", "f1","v1", (err,value) => {
        //callback fires
        console.log("test command reply received")
    })

    socket.on('message', (data) => {})
}

更新:

我错了。奇怪的回调行为的原因是我的一个自定义 Redis 模块没有返回回复。 这似乎导致此调用之后的所有回调似乎都有某种一步延迟。

【问题讨论】:

    标签: node.js websocket redis node-redis ioredis


    【解决方案1】:

    我错了。奇怪的回调行为的原因是我的一个自定义 Redis 模块没有返回回复。这似乎导致此调用之后的所有回调似乎都有某种一步延迟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-06
      • 2018-01-30
      • 1970-01-01
      • 2019-08-18
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多