0

我正在使用 Express,从内部app.js调用一个工作线程,该线程位于另一个名为service.js. 当我通过正常运行它时,一切运行顺利node app.js,但是一旦我切换到 PM2,pm2 start app.js什么都没有发生。它甚至不会尝试调用该service.js文件。我在Ubuntu 18.04 上运行节点 v17.4.0。对可能发生的事情有任何想法吗?

应用程序.js

// app.js
const { Worker } = require('worker_threads')

function runService(workerData) {
  return new Promise((resolve, reject) => {
    const worker = new Worker('./service', { workerData });
    worker.on('message', resolve);
    worker.on('error', reject);
    worker.on('exit', (code) => {
      if (code !== 0)
        reject(new Error(`Worker stopped with exit code ${code}`));
    })
  })
}

async function run() {
  const result = await runService('world')
  console.log(result);
}

run().catch(err => console.error(err))

服务.js

//service.js
const { workerData, parentPort } = require('worker_threads')

// You can do any heavy stuff here, in a synchronous way
// without blocking the "main thread"
parentPort.postMessage({ hello: workerData })
4

0 回答 0