Как правильно делать много запросов к сторонним API и обновлять/добавлять данные в БД. NodeJS
Как правильно делать много запросов к сторонним API и обновлять/добавлять данные в БД? Мой код ведет себя странно. Данные обновляет рандомно, плюс запускал по крону и ловлю это error: FATAL: sorry, too many clients already.(postgresql)
class WorkerService{
async startWorker() {
const data = await Marketplace.findAll({raw:true})
let fetches = data.map(url => fetch(url["urlAPI"],{
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
body: JSON.stringify(url["token"])
}).then(res => res.json()));
Promise.allSettled(fetches)
.then((results) => {
results.forEach((result, num) => {
if (result.status === "fulfilled") {
if(result.value !== '{not data}'){
mapChange.set(data[num]["id"],result.value)
}
}
else if (result.status === "rejected") {
console.log(`Failed Calling: \n\treason: ${result.reason}`);
}
});
updateMarketContent(mapChange)
mapChange.clear()
})
.catch((err) => {
console.log(err)
});
}}
class UpdateService{async updateMarketContent(map){
for (const [key,value] of map) {
const rez = await MarketplaceContent.findOne({where:{marketplaceId:key}})
if(rez){
rez.data = JSON.stringify(value)
const market = MarketplaceUpdate.create({type:'Updated',marketplaceId:key})
return await rez.save()
}else{
const market = MarketplaceUpdate.create({type:'Add',marketplaceId:key})
return await MarketplaceContent.create({data:JSON.stringify(value),marketplaceId:key})
}
}
}}