refactor: more worker function -> task function renaming
[poolifier.git] / examples / typescript / pool.ts
index 50dcc7b779d7118b27f42c56136fca509d58a7f6..a53857c0f311a63ff321b4ce08b9e1ef02465dcd 100644 (file)
@@ -1,23 +1,35 @@
-import { DynamicThreadPool, FixedThreadPool } from 'poolifier'
-import { MyData, MyResponse } from './worker'
-
-import { join } from 'path'
+import { dirname, join } from 'path'
+import { fileURLToPath } from 'url'
+import type { MyData, MyResponse } from './worker'
+import {
+  DynamicThreadPool,
+  FixedThreadPool,
+  availableParallelism
+} from 'poolifier'
 
 export const fixedPool = new FixedThreadPool<MyData, Promise<MyResponse>>(
-  8,
-  join(__dirname, 'worker.js'),
+  availableParallelism(),
+  join(dirname(fileURLToPath(import.meta.url)), 'worker.js'),
   {
-    errorHandler: e => 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<MyData, Promise<MyResponse>>(
-  2,
-  8,
-  join(__dirname, 'worker.js'),
+  Math.floor(availableParallelism() / 2),
+  availableParallelism(),
+  join(dirname(fileURLToPath(import.meta.url)), 'worker.js'),
   {
-    errorHandler: e => console.error(e),
-    onlineHandler: () => console.log('Worker is online')
+    errorHandler: (e: Error) => {
+      console.error(e)
+    },
+    onlineHandler: () => {
+      console.info('Worker is online')
+    }
   }
 )