Open trasherdk opened 2 years ago
worker.js
const someFailedAsyncTask = async () => new Promise((resolve, reject) => { setTimeout(() => reject(new Error('Task failed')), 1000); }); workerpool.worker({ someFailedAsyncTask, });
workerpoolcontroller.js
import * as path from 'path'; import * as workerpool from 'workerpool'; type ScannerWorker = { someFailedAsyncTask: () => string; }; class WorkerpoolController { private workerpool: workerpool.WorkerPool; pool: workerpool.Proxy<ScannerWorker>; async init() { this.workerpool = workerpool.pool( path.join(__dirname, 'worker.js') ); this.pool = await this.workerpool.proxy(); } stats() { return this.workerpool.stats(); } } export default new WorkerpoolController();
test.js
(async () => { await workpoolController.init(); workpoolController.pool .someFailedAsyncTask() .then((res) => console.log('task succeed')); .catch((err) => console.log('task failed')) })();
Source: https://github.com/josdejong/workerpool/issues/336#issuecomment-1036265092
worker.js
workerpoolcontroller.js
test.js
Source: https://github.com/josdejong/workerpool/issues/336#issuecomment-1036265092