IORedis 或 (node_redis) 调用自定义 Redis 命令/模块后未触发回调



在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")
       })
    })
}

Redis 命令正在按预期工作,尽管在应用程序的其他部分,甚至在直接在 On 连接内,如下所示。

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 模块没有返回回复。这似乎导致此调用后的所有回调似乎都有某种一步延迟。

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

相关内容

  • 没有找到相关文章

最新更新