Commit | Line | Data |
---|---|---|
a449b585 JB |
1 | import { dirname, extname, join } from 'node:path' |
2 | import { fileURLToPath } from 'node:url' | |
7a6a0a96 | 3 | import type { MyData, MyResponse } from './worker' |
6961ca9a JB |
4 | import { |
5 | DynamicThreadPool, | |
6 | FixedThreadPool, | |
7 | availableParallelism | |
8 | } from 'poolifier' | |
e9e16250 | 9 | |
9bc1ca75 JB |
10 | const workerFile = join( |
11 | dirname(fileURLToPath(import.meta.url)), | |
12 | `worker${extname(fileURLToPath(import.meta.url))}` | |
13 | ) | |
14 | ||
e9e16250 | 15 | export 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 | |
28 | export 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 | ) |