docs: document availableParallelism() usage
[poolifier.git] / examples / dynamicExample.js
1 const {
2 DynamicThreadPool,
3 PoolEvents,
4 availableParallelism
5 } = require('poolifier')
6
7 const pool = new DynamicThreadPool(
8 availableParallelism() / 2,
9 availableParallelism(),
10 './yourWorker.js',
11 {
12 errorHandler: e => console.error(e),
13 onlineHandler: () => console.info('worker is online')
14 }
15 )
16 let poolFull = 0
17 let poolBusy = 0
18 pool.emitter.on(PoolEvents.full, () => poolFull++)
19 pool.emitter.on(PoolEvents.busy, () => poolBusy++)
20
21 let resolved = 0
22 const start = performance.now()
23 const iterations = 1000
24 for (let i = 1; i <= iterations; i++) {
25 pool
26 .execute({})
27 .then(() => {
28 resolved++
29 if (resolved === iterations) {
30 console.info('Time taken is ' + (performance.now() - start))
31 console.info('The pool was full for ' + poolFull + ' times')
32 return console.info('The pool was busy for ' + poolBusy + ' times')
33 }
34 return null
35 })
36 .catch(err => console.error(err))
37 }