Запросить запрос Sequelize случайным образом - PullRequest
0 голосов
/ 27 сентября 2019

Я вызываю метод, который обновляет некоторые данные в модели Postgres, используя Sequelize.Вызов осуществляется из функции асинхронного генератора следующим образом:

Структура папки:

  1. folder1
    • initialCallFile (функция генератора)
    • anotherFileThatCalls (функция без генератора)
  2. folder2
    • updateBotMethodFile

Первоначальный вызов:

async function* function() {
    await storage.updateBot({id: player.id, handsPlayed: 1, isActive: true});
}

Метод updateBot:

function updateBot(data) {
  return new Promise(async resolve => {
    try {
      const bot = await Bot.findOne({
        where: {
          id: data.id,
        },
      });

      if (bot) {
        if (data.handsPlayed)
          bot.handsPlayed += data.handsPlayed;
        if (data.handsWon)
          bot.handsWon += data.handsWon;
        if (data.totalWinnings)
          bot.totalWinnings = data.totalWinnings;
        if (data.isActive !== null && data.isActive !== undefined)
          bot.isActive = data.isActive;
      } else {
        logger.log('debug', 'No Bot found with id: %s', data.id);
        resolve(true);
      }

      await bot.save();

      resolve(true);
    } catch (err) {
      logger.log('error', 'Error updating Bot with id: %s', data.id);
      resolve(true);
    }
  });
}

Метод updateBot зависает при начальном запросе Bot.fineOne.Не выдается никаких ошибок, и даже через 5-10 минут нет таймаута.

Я также вызываю updateBot из других мест, которые не находятся внутри функции генератора и работают как положено, не зависая.Однако я не думаю, что это функция генератора, вызывающая проблемы, поскольку для одной это совершенно отдельная функция, и когда я заменяю запрос простым тайм-аутом, он не зависает.

Я также пытался вызватьобновить непосредственно в функции генератора, и все еще есть зависание.Так как нет ошибок или тайм-аута, я не уверен, как лучше отладить проблему.Код работает как задумано, когда вызывается в другом месте, так что я весьма озадачен.

Любые предложения будут с благодарностью.

...