收藏
回答

云函数中进行mysql操作,所有日志状态都是调用失败,该怎么解决这个问题?

如上图所示,我的大部分云函数日志都是超时。我判断是我的云函数进行了mysql操作,没有关闭连接所致,但是我在网上搜了半天都没有如何关闭mysql连接的文章。下面是我的云函数代码,请问各位高手,应该如何解决日志不能实际显示结果的问题呢?

const mysql = require('mysql2/promise')

exports.main = async (event, context) => {

  try {

    const connection = await mysql.createConnection({

      host: "mysql ip",

      port: "mysql port",

      database: "mysql db",

      user: "mysql user",

      password: "mysql password"

    });

   

    var sql = "select * from mytable";  

    connection.connect();

    const [rows, fields] = await connection.execute(sql);

    return rows[0];

  } catch(err){

    return 'error';

  }

}

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

3 个回答

  • showms
    showms
    2023-04-22

    https://cloud.tencent.com/document/product/583/67790

    2023-04-22
    有用 1
    回复
  • 孙永春
    孙永春
    2023-04-22
    提出问题后在右侧相关问题中找到了答案,虽然不知道原理,但是问题确实解决了。
    解决方法:
    云函数入口函数后插入:context.callbackWaitsForEmptyEventLoop = false
    
    
    

    2023-04-22
    有用
    回复 2
    • admin
      admin
      发表于小程序端
      2023-04-23

      这句是什么意思

      2023-04-23
      回复
    • 孙永春
      孙永春
      2023-04-23回复admin
      请看showms的回答,终于明白点了,回头要再好好学学异步处理的知识
      2023-04-23
      回复
  • Mr.Zhao
    Mr.Zhao
    2023-04-22

    connection.end()

    2023-04-22
    有用
    回复 1
    • 孙永春
      孙永春
      2023-04-22
      谢谢回复,不过我用另外的办法解决了,回头试试你说的办法。
      2023-04-22
      回复
登录 后发表内容