Skip to content

Multithreaded async requests sender using Axios and Workers

License

Notifications You must be signed in to change notification settings

kura52/axios-parallel

This branch is 2 commits ahead of, 1 commit behind datyin/axios-parallel:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ba91ae9 · Apr 4, 2021

History

23 Commits
Nov 19, 2020
Nov 19, 2020
Apr 4, 2021
Nov 19, 2020
Apr 4, 2021
Nov 19, 2020
Nov 19, 2020
Apr 4, 2021
Apr 4, 2021
Nov 19, 2020
Nov 20, 2020
Nov 19, 2020
Nov 19, 2020
Nov 19, 2020
Jan 6, 2021
Apr 4, 2021
Nov 19, 2020
Nov 19, 2020

Repository files navigation

Send Asynchronous Requests

Send multiple asynchronous requests using Axios & Workers in NodeJS

NOTE: This module is meant for Node.JS applications, not Web Browser.

Installation

npm install axios axios-parallel --save

Usage

const axiosParallel = require('axios-parallel');

// Debug
const { performance } = require('perf_hooks');
const { writeFileSync } = require('fs');

console.log('Start...');

(async () => {
  const start = performance.now();
  const requests = [];

  // https://jsonplaceholder.typicode.com/posts
  for (let id = 1; id <= 100; id++) {
    // https://github.com/axios/axios#axios-api
    requests.push({
      method: 'GET',
      url: `https://jsonplaceholder.typicode.com/posts/${id}`
    });
  }

  try {
    const MAX_PARALLEL_REQUEST_PER_CPU = 30;
    const response = await axiosParallel(requests, MAX_PARALLEL_REQUEST_PER_CPU);

    writeFileSync('example.response.json', JSON.stringify(response), {
      encoding: 'utf8'
    });
  } catch (error) {
    throw new Error(error);
  }

  const end = performance.now() - start;
  console.log(`Execution time: ${end}ms`);
})();

About

Multithreaded async requests sender using Axios and Workers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 65.2%
  • TypeScript 34.8%