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