Esse script tem como função processar requisições http de forma paralela com estratégias de resiliência, com o objetivo de criar um cache de objetos.
Deseja-se obter o payload dos ids de 1 até 400 da sequinte requisição:
const api = async (id) => {
return axios
.get(`https://jsonplaceholder.typicode.com/photos/${id}`)
.then((res) => res.data)
.catch((err) => {
throw err;
});
};
# Objeto resultante da requisição na função api, com id = 1
# {
# id: 1,
# title: 'accusamus beatae ad facilis cum similique qui sunt',
# url: 'https://via.placeholder.com/600/92c952'
# }
Agora, imaginemos que necessitamos consultar 400 ids, um a um, se torna custoso esse tipo de requisição, com isso, se torna interessante o uso de paralelismo de requisições.
- Sem paralelismo, foi possível processar 400 requisições em ~11.8 segundos;
- Com paralelismo, 400 requisições em ~1,5 segundos.
# Sem paralelismo
node cache-without-paralelism.js
# Com paralelismo
node cache-with-paralelism.js
Made with 💙 by Enéas Almeida