X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=examples%2Ftypescript%2Fpool.ts;h=57898d98a9d53a8c89c3d774847e9cae694a53fe;hb=68bbb0e81bd4d15cc43270a7fa0101f83d94893f;hp=be92f73bf763afbe7b408ae5c5026c44b6ec3c2b;hpb=78cea37e264d5ca527bc42eb056f3b9579a2b2c4;p=poolifier.git diff --git a/examples/typescript/pool.ts b/examples/typescript/pool.ts index be92f73b..57898d98 100644 --- a/examples/typescript/pool.ts +++ b/examples/typescript/pool.ts @@ -1,22 +1,46 @@ -import { join } from 'path' -import { DynamicThreadPool, FixedThreadPool } from 'poolifier' -import type { MyData, MyResponse } from './worker' +import { dirname, extname, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import type { MyData, MyResponse } from './worker.js' +import { + DynamicThreadPool, + FixedThreadPool, + availableParallelism +} from 'poolifier' + +const workerFile = join( + dirname(fileURLToPath(import.meta.url)), + `worker${extname(fileURLToPath(import.meta.url))}` +) export const fixedPool = new FixedThreadPool>( - 8, - join(__dirname, 'worker.js'), + availableParallelism(), + workerFile, { - errorHandler: (e: Error) => console.error(e), - onlineHandler: () => console.log('Worker is online') + errorHandler: (e: Error) => { + console.error(e) + }, + onlineHandler: () => { + console.info('Worker is online') + } } ) export const dynamicPool = new DynamicThreadPool>( - 2, - 8, - join(__dirname, 'worker.js'), + Math.floor(availableParallelism() / 2), + availableParallelism(), + workerFile, { - errorHandler: (e: Error) => console.error(e), - onlineHandler: () => console.log('Worker is online') + errorHandler: (e: Error) => { + console.error(e) + }, + onlineHandler: () => { + console.info('Worker is online') + } } ) + +// eslint-disable-next-line @typescript-eslint/no-misused-promises +setTimeout(async () => { + await fixedPool.destroy() + await dynamicPool.destroy() +}, 3000)