从 Sequelize 获取查询结果,然后 运行 逐个结果地抓取作业
Get query results from Sequelize then run a scraper job result by result
我正在尝试通过 Sequilize 查询数据库,然后我想使用返回到 运行 的每条记录进行抓取作业(使用 puppeteer)。我希望它 运行 只记录一条记录,就像我们开始抓取第一条记录,然后等待第一条记录完成,然后继续进行第二条记录。
到目前为止,这是我的代码
抓取控制器:
exports.directFind = async (vin, res) => {
if (vin) {
let browserInstance = browserObject.startBrowser();
await scraperController(browserInstance,vin)
.then(results => {
return res(results)
});
}
};
使用爬虫发送通知的功能
const sendNotif = async () => {
Vins.findAll({raw : true}).then(async (vins) => {
await vins.map(async (vin) => {
console.log(vin.vin)
await search.directFind(vin.vin,function(res) {
status.findLatestVinStatus(vin.id,function(latestVINStatus) {
if (latestVINStatus.vmacs3CharCode == res.result.order.vmacs3CharCode || latestVINStatus.gobStatusCode == res.result.order.gobStatusCode) { //to be cganged for prod
console.log("we need to send notif")
//sendEmail(res.result)
}
});
})
console.log('end')
});
})
}
谢谢
您可以使用 for 循环将结果逐一检查:
for (const vin of await Vins.findAll({raw : true})) {
await search.directFind(vin.vin, res => { // ... })
}
我正在尝试通过 Sequilize 查询数据库,然后我想使用返回到 运行 的每条记录进行抓取作业(使用 puppeteer)。我希望它 运行 只记录一条记录,就像我们开始抓取第一条记录,然后等待第一条记录完成,然后继续进行第二条记录。
到目前为止,这是我的代码 抓取控制器:
exports.directFind = async (vin, res) => {
if (vin) {
let browserInstance = browserObject.startBrowser();
await scraperController(browserInstance,vin)
.then(results => {
return res(results)
});
}
};
使用爬虫发送通知的功能
const sendNotif = async () => {
Vins.findAll({raw : true}).then(async (vins) => {
await vins.map(async (vin) => {
console.log(vin.vin)
await search.directFind(vin.vin,function(res) {
status.findLatestVinStatus(vin.id,function(latestVINStatus) {
if (latestVINStatus.vmacs3CharCode == res.result.order.vmacs3CharCode || latestVINStatus.gobStatusCode == res.result.order.gobStatusCode) { //to be cganged for prod
console.log("we need to send notif")
//sendEmail(res.result)
}
});
})
console.log('end')
});
})
}
谢谢
您可以使用 for 循环将结果逐一检查:
for (const vin of await Vins.findAll({raw : true})) {
await search.directFind(vin.vin, res => { // ... })
}