亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

node.js 有沒有辦法靠外力終止函數執行?

node.js 有沒有辦法靠外力終止函數執行?

慕沐林林 2019-01-30 09:28:01
lei### 問題描述這里的終止不是指條件達成時的終止,而是靠外力終止。我用koa做web服務,puppeteer做爬蟲,通過循環讀取數據庫的名單,去查詢某個網站的數據,當名單查詢完成時,會停止運行。有沒有方法能夠中途終止爬蟲函數的運行,并且保證koa的正常運行,不殺死整個node進程?
查看完整描述

1 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

可以試試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);

輸出為:
test
test
子進程收到信號 SIGKILL 而終止


查看完整回答
反對 回復 2019-01-30
  • 1 回答
  • 0 關注
  • 719 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號