收藏
回答

云函数连接redis,能调用成功,。但日志一直超时,即使关闭了redis连接。请问是没有正确关闭吗?

// 云函数入口文件
const cloud = require('wx-server-sdk')


cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
const Redis = require('ioredis')



const redis = new Redis({
  host: "*******",
  port: '6379',
  // family: 4,
  password: '******',
  // db: 0
})
// 云函数入口函数
exports.main = async (event, context) => {
  const logger = cloud.logger()
  try {
    const wxContext = cloud.getWXContext()
    await redis.set('test-redis', "测试redis");
    const data = await redis.get('test-redis')
    redis.disconnect(true);
    // await redis.quit()
    return {
      data,
      // event,
      openid: wxContext.OPENID,
      appid: wxContext.APPID,
      unionid: wxContext.UNIONID,
    }
  } catch (error) {
    // 记录日志
    logger.error({
      type: error.name,
      message: error.message,


    });
    return { code: 1, msg: '失败', data: error.message }
  }

}



如上图所示。我分别用了两种方法去关闭连接:

  1. redis.disconnect(true);

这个能返回数据。但日志还是调用失败超时;


2. await redis.quit();

这种方法日志显示调用成功。但是返回结果又是报错的。

快要奔溃了。

回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    发表于移动端
    2023-03-14
    持续计费就是没关成功
    2023-03-14
    有用 1
    回复 7
    • momo
      momo
      发表于移动端
      2023-03-15
      一直搞不定。我明明关闭连接了。
      2023-03-15
      回复
    • momo
      momo
      发表于移动端
      2023-03-15
      你看用两种方式去关闭都不行。而且有一个方式是能返回正常数据的,但日志就是报超时!
      2023-03-15
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-03-15回复momo
      我用云函数测试了 没问题
      2023-03-15
      回复
    • momo
      momo
      2023-03-15
      用你同样的代码测试了。第一次调用的时候是成功的。但第二次调用就不行了,就说Connection is Closed。难道上一次调用的关闭redis会影响下一次的调用?
      2023-03-15
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-03-15回复momo
      把new Redis写到main里面试试
      2023-03-15
      1
      回复
    查看更多(2)
登录 后发表内容