node.js 有没有办法靠外力终止函数执行?

lei### 问题描述

这里的终止不是指条件达成时的终止,而是靠外力终止。
我用koa做web服务,puppeteer做爬虫,通过循环读取数据库的名单,去查询某个网站的数据,当名单查询完成时,会停止运行。
有没有方法能够中途终止爬虫函数的运行,并且保证koa的正常运行,不杀死整个node进程?


慕沐林林
浏览 682回答 1
1回答

森林海

可以试试child_process(子进程),看看能不能满足要求。在主线程中衍生一个子线程,在需要的时候直接杀死子线程。下面是测试代码,主线程衍生一个子线程,3秒后杀死,子线程有一个定时器,每秒打印一个test主线程代码:const cp = require('child_process');const grep = cp.fork(`${__dirname}/test.js`); grep.on('close', (code, signal) => {  console.log(`子进程收到信号 ${signal} 而终止`); });// 发送 SIGHUP 到进程。setTimeout(() => {   grep.kill('SIGKILL'); }, 3000)子线程代码:let timer = setInterval(() => {  console.log('test'); }, 1000);输出为:testtest子进程收到信号 SIGKILL 而终止
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Node.js