Node.js Worker线程未被调用,代码不执行且无日志输出的问题求助
Node.js Worker线程未被调用,代码不执行且无日志输出的问题求助
我的Node.js服务器目录结构如下:
./src/rest/api/longJob.js ./src/rest/api/worker.js
我在longJob.js中编写了一个方法,打算将耗时操作交给Worker线程处理,代码如下:
const { Worker } = require('node:worker_threads') async runWorker(scriptfile, input) { console.log('Running worker python script:', scriptfile); return new Promise(function(resolve, reject) { const worker = new Worker("./src/rest/api/worker.js", { workerData: { thread_count: 3 }, }); worker.on("message", (data) => { console.log("[[Worker]]:", data); resolve(data); }); worker.on("error", (msg) => { reject(`An error ocurred: ${msg}`); }); }); return p; }
我使用Promise来处理结果,这样当Promise被resolve时,就能将数据作为响应返回给REST API。
Worker线程文件worker.js的代码如下:
import { parentPort, workerData } from "worker_threads"; async function worker() { console.log("started"); parentPort.postMessage("fixed!"); } console.log('worker executing'); worker();
现在我遇到了问题:每次创建新的Worker时,Worker内的代码完全不执行,且Worker一直处于在线状态。另外,VSCode的JS调试终端中也看不到worker.js的控制台日志,我完全搞不清代码哪里出了问题。
我是从项目根目录通过npm start启动Node.js应用的,希望能得到大家的帮助,谢谢!
备注:内容来源于stack exchange,提问作者Ronak SHAH
相关产品推荐
相关产品推荐

