2 回答

TA貢獻1883條經(jīng)驗 獲得超3個贊
我們有個服務比較類似。主要用到了隊列,隊列是基于redis實現(xiàn)的,大概原理如下:
實現(xiàn)單個任務的功能
任務A實現(xiàn)后將數(shù)據(jù)放到到隊列A中
任務B從隊列A中消費數(shù)據(jù),成功則刪除當前任務,失敗則重新存入,任務B完成后產(chǎn)生的數(shù)據(jù)存儲隊列B
任務C從隊列B中消費數(shù)據(jù),成功則刪除當前任務,失敗則重新存入,任務C完成后產(chǎn)生的數(shù)據(jù)存儲隊列C
這樣整個流程的任務唄拆分出來,業(yè)務邏輯也簡單化,方便維護,并且,任務ABC都是并行計算的,且相對隔離

TA貢獻1836條經(jīng)驗 獲得超4個贊
這里面涉及到的技術(shù)點如下:
發(fā)出 HTTP 請求,用 http 模塊的 get 或者 request 函數(shù);
分析請求到的頁面數(shù)據(jù),假設(shè)頁面是 html 頁面,可以用 cheerio 來解析頁面的 DOM 結(jié)構(gòu),獲取頁面上的數(shù)據(jù);
異步流程控制,因為 node.js 是單線程異步執(zhí)行的,所以你如果兩個任務需要串行執(zhí)行,需要進行流程控制;
流程控制可以自己實現(xiàn),也可以用第三方庫來實現(xiàn);
能想到的大概就是這些,歡迎大家補充。
添加回答
舉報