Merge branch 'master' of github.com:jerome-benoit/poolifier
[poolifier.git] / examples / typescript / pool.ts
CommitLineData
9bc1ca75 1import { dirname, extname, join } from 'path'
1adc6af7 2import { fileURLToPath } from 'url'
7a6a0a96 3import type { MyData, MyResponse } from './worker'
6961ca9a
JB
4import {
5 DynamicThreadPool,
6 FixedThreadPool,
7 availableParallelism
8} from 'poolifier'
e9e16250 9
9bc1ca75
JB
10const workerFile = join(
11 dirname(fileURLToPath(import.meta.url)),
12 `worker${extname(fileURLToPath(import.meta.url))}`
13)
14
e9e16250 15export const fixedPool = new FixedThreadPool<MyData, Promise<MyResponse>>(
6961ca9a 16 availableParallelism(),
9bc1ca75 17 workerFile,
e9e16250 18 {
a974afa6
JB
19 errorHandler: (e: Error) => {
20 console.error(e)
21 },
22 onlineHandler: () => {
53795b86 23 console.info('Worker is online')
a974afa6 24 }
e9e16250 25 }
cf9aa6c3 26)
e9e16250
CQ
27
28export const dynamicPool = new DynamicThreadPool<MyData, Promise<MyResponse>>(
31a7d5be 29 Math.floor(availableParallelism() / 2),
6961ca9a 30 availableParallelism(),
9bc1ca75 31 workerFile,
e9e16250 32 {
a974afa6
JB
33 errorHandler: (e: Error) => {
34 console.error(e)
35 },
36 onlineHandler: () => {
53795b86 37 console.info('Worker is online')
a974afa6 38 }
e9e16250 39 }
cf9aa6c3 40)