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