Skip to content

Tratando requisições http de forma paralela com estratégias de resiliência, com o objetivo de criar um cache de objetos.

Notifications You must be signed in to change notification settings

venzel/cache-parallel

Repository files navigation

Cache Parallel

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.

Exemplo

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.

Resultados

  • Sem paralelismo, foi possível processar 400 requisições em ~11.8 segundos;
  • Com paralelismo, 400 requisições em ~1,5 segundos.

Para executar

# Sem paralelismo
node cache-without-paralelism.js

# Com paralelismo
node cache-with-paralelism.js
Profile Made with 💙 by Enéas Almeida

About

Tratando requisições http de forma paralela com estratégias de resiliência, com o objetivo de criar um cache de objetos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published