微信小程序云函数超时, 其中一种原因及其解决方法
日期:2020-06-07
作者:科技微讯
我写的一个小程序云函数在本地调试时, 可以正常执行, 没有返回任何错误, 但部署到云端后每次执行都提示超时: task timed out after 3 seconds
.
超时的原因很多, 我的原因是: 该云函数通过 mongoose 连接到一个 mongodb 数据库, 执行数据库操作后没有主动关闭连接. 我的解决方法是在 return 之前添加 mongoose.connection.close()
, 示例代码:
const cloud = require("wx-server-sdk");
const mongoose = require("mongoose");
cloud.init();
exports.main = async (event, context) => {
try {
await mongoose.connect("mongodb://xxxxxx", {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
user: "xxx",
pass: "xxx",
authSource: "xxx",
});
console.log("数据库连接成功!");
} catch (e) {
console.log("数据库连接失败:", e);
}
// do something...
db.close();
return {
event: event,
};
};
2021/06/07 补充:但是我们不应该 close 数据库连接,关于如何保持数据库连接,同时又避免数据库连接超时,请看我另一篇文章。