Как получить данные API и вставить в MySQL в режиме реального времени с помощью NodeJS - PullRequest
0 голосов
/ 12 февраля 2019

Я должен вставить в свою базу данных mysql данные в реальном времени с десятков различных платформ.Я использую NodeJS и извлекаю данные из API.

У меня есть код, который работает, но у него есть ограничение из-за нумерации страниц, и я не хочу все данные, я просто хочу новые данные, такие каккаждый скрипт запускается и получает все новые данные из API платформ и отправляет их в мою базу данных mysql.Я думал о том, чтобы попытаться использовать Kue для сохранения данных и PM2 для запуска сценария, но я не очень разбираюсь в них.

   const axios = require("axios");
   const db = require('../dbConnection');


  module.exports = {
    async index(req, res) {
      const {data} = await axios.get(
        "https://url/api/3/contacts?listid=13&limit=100",
        {
          headers: {
            "Api-Token":
              "***"
          }
        }
      );
      const {contacts} = data;

      const dataToDb = contacts.map(user => {
        let {email, created_utc_timestamp} = user;
        return {email,created_utc_timestamp}
    });

      const promises = dataToDb.map(index=>{
        db('wp_activecampaign').insert({ user_email: index.email, user_created: index.created_utc_timestamp }).then(()=>console.log('Novo dado')).catch(err=>console.log(err));})

      await Promise.all(promises);

      return res.status(200).json('sucess!');
    }
  };

Я получаю 100 строк из приведенного выше кода, но я хочу, чтобы все они, что-то вроде 260 тыс. В час, с новыми записями или узнали, как использовать Kue для решения этой проблемы.

...