1 import { availableParallelism
} from
'poolifier'
3 import { httpClientPool
} from
'./pool.js'
4 import type { WorkerResponse
} from
'./types.js'
6 const parallelism
= availableParallelism() * 2
7 const requestUrl
= 'http://localhost:8080/'
9 for (const workerFunction
of ['node_fetch', 'fetch', 'axios']) {
10 const httpClientPoolPromises
= new Set
<Promise
<WorkerResponse
>>()
11 for (let i
= 0; i
< parallelism
; i
++) {
12 httpClientPoolPromises
.add(
13 httpClientPool
.execute({ input
: requestUrl
}, workerFunction
)
17 const now
= performance
.now()
18 const responses
= await Promise
.all(httpClientPoolPromises
)
19 const elapsedTime
= performance
.now() - now
21 `Received in ${elapsedTime.toFixed(2)}ms an array with ${
23 } responses from ${parallelism} parallel requests made with HTTP client pool task function ${workerFunction} on ${requestUrl}:\n`,