feat: add fastify hybrid pools example
[poolifier.git] / examples / typescript / http-server-pool / express-worker_threads / src / pool.ts
1 import { dirname, extname, join } from 'node:path'
2 import { fileURLToPath } from 'node:url'
3 import { DynamicThreadPool, availableParallelism } from 'poolifier'
4 import {
5 type BodyPayload,
6 type WorkerData,
7 type WorkerResponse
8 } from './types.js'
9
10 const workerFile = join(
11 dirname(fileURLToPath(import.meta.url)),
12 `worker${extname(fileURLToPath(import.meta.url))}`
13 )
14
15 export const requestHandlerPool = new DynamicThreadPool<
16 WorkerData<BodyPayload>,
17 WorkerResponse<BodyPayload>
18 >(1, availableParallelism(), workerFile, {
19 enableTasksQueue: true,
20 tasksQueueOptions: {
21 concurrency: 8
22 },
23 errorHandler: (e: Error) => {
24 console.error('Thread worker error:', e)
25 }
26 })