MongoDB - AWS лямбда-сервер бездействия через 6,01 секунды - PullRequest
1 голос
/ 16 апреля 2020

В некоторых моих маршрутах лямбда-функция отключается через 6 секунд, когда она использует существующее соединение mongodb.

Я уверен, что сама функция не является проблемой, поскольку я добавил много журналов, и это занимает 0,1 секунды, чтобы завершить sh, но лямбда не возвращает ничего более 6 секунд. В большинстве онлайн-уроков соединение с БД находится в той же папке, что и лямбда-функция, но я переместил его в собственный пакет, поскольку у меня более 5 конечных точек.

Это самая базовая c конечная точка, время от времени истекающая

module.exports.getAll = async (event, context, callback) => {
  context.callbackWaitsForEmptyEventLoop = false;
  try {
    await databaseModels.db();
    const x = await databaseModels.items.model.find({});

    callback(null, {
      statusCode: 200,
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(x)
    })
  } catch (error) {

    callback(error, {
      statusCode: 500,
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(error)
    })
  }
};

Это моя функция подключения к базе данных, которую я вызываю в начале каждой лямбда-функции

const url = ``

let isConnected;
module.exports = connectToDatabase = () => {
  if (isConnected) {
    console.log('=> using existing database connection');
    return Promise.resolve();
  }
  console.log('=> using new database connection');
  return mongoose.connect(url).then(db => {
    isConnected = db.connections[0].readyState;
  });
};

В одном из туриал я обнаружил, что автор открывает соединение для каждого запроса и закрывает его, когда вычисление было сделано. Это хорошая практика?

...