worker threads throws exception while loading npm lib
the following code fails if I'm trying to run it, seems the problem comes from the marked line below.
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads'); const Kafka = require('node-rdkafka'); // <-- Problemetic line.. if (isMainThread) { console.log('main thread'); const worker = new Worker(__filename, { workerData: 1 }); worker.on('message', (args) => console.log('got message from worker', args)); worker.on('error', (args) => console.log('got error from worker', args)); worker.on('exit', (code) => { if (code !== 0) console.log(`Worker stopped with exit code ${code}`); }); } else { const script = workerData; parentPort.postMessage(2); }
'node-rdkafka' is a external library I'm using, and I was tempted to try and see if I could improve performance with the new worker threads.
while a worker is loaded, there's an error thrown saying 'Module did not self-register'.
this lib does work perfectly without the worker thread.
got error from worker Error: Module did not self-register.
at Object.Module._extensions..node (internal/modules/cjs/loader.js:718:18)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:20:18)
at bindings (/Users/danrevah/dev/git/tmp-librdkafka/node_modules/bindings/bindings.js:81:44)
at Object.<anonymous> (/Users/danrevah/dev/git/tmp-librdkafka/node_modules/node-rdkafka/librdkafka.js:10:32)
at Module._compile (internal/modules/cjs/loader.js:689:30)- Version: 10.6.0
- Platform: Darwin Dans-MacBook-Pro.local 17.5.0 Darwin Kernel Version 17.5.0: Fri Apr 13 19:32:32 PDT 2018; root:xnu-4570.51.2~1/RELEASE_X86_64 x86_64
Angular 4-6+ Pipes - https://github.com/danrevah/ngx-pipes