1 import { dirname
, extname
, join
} from
'node:path'
2 import { fileURLToPath
} from
'node:url'
3 import { DynamicThreadPool
, availableParallelism
} from
'poolifier'
7 type ThreadWorkerResponse
10 const requestHandlerWorkerFile
= join(
11 dirname(fileURLToPath(import.meta
.url
)),
12 `request-handler-worker${extname(fileURLToPath(import.meta.url))}`
15 export const requestHandlerPool
= new DynamicThreadPool
<
16 ThreadWorkerData
<DataPayload
>,
17 ThreadWorkerResponse
<DataPayload
>
18 >(1, Math.round(availableParallelism() / 2), requestHandlerWorkerFile
, {
19 enableTasksQueue
: true,
23 errorHandler
: (e
: Error) => {
24 console
.error('Thread worker error:', e
)