NodeJS 和 TypeScript 使用线程
参考:
由于 ts-node 和 nodemon 直接 使用 worker_threads 有问题。需要一个代理js
主流程 main.ts
import { Worker } from 'worker_threads';
console.log(`[Main] Run in ${process.env.NODE_ENV} env`);
// Instanciate worker
const myWorker: Worker = new Worker(process.env.NODE_ENV === 'production' ? './task.js' : './src/task_proxy.js');
// On worker online
myWorker.on('online', () => {
console.log(`[Main] Worker is online and executing code!`);
myWorker.postMessage('ss');
});
myWorker.on('message', () => {
console.log(`[Main] Worker is done!`);
});
// On worker exit
myWorker.on('exit', (code) => {
console.log(`[Main] Worker execution is over with code: ${code}`);
});
// On worker error
myWorker.on('error', (error) => {
// Sometime stack is undefined, we can stringify error instead
console.log(`[Main] Worker catch an error: ${error.stack || JSON.stringify(error)}`);
});
工作脚本 task.ts
import { parentPort } from 'worker_threads';
parentPort?.once('message', (message) => {
console.log('[Worker] running:', message);
parentPort?.postMessage({ pong: message });
});
代理脚本 task_proxy.js
const path = require('path');
require('ts-node').register();
require(path.resolve(__dirname, 'task.ts'));
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibeiek
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22