首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在无限循环中中断puppeteer-cluster的执行?

如何在无限循环中中断puppeteer-cluster的执行?
EN

Stack Overflow用户
提问于 2021-08-17 02:32:54
回答 1查看 61关注 0票数 0

我正在学习如何使用Puppeteer集群,我有一个问题。

如何使用按键中断在无限循环中运行的木偶操纵者集群执行?

代码应该是这样的:

代码语言:javascript
复制
const { Cluster } = require('puppeteer-cluster');

const fs = require('fs').promises;
function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function run() {
    const cluster = await Cluster.launch({
        concurrency: Cluster.CONCURRENCY_CONTEXT,
        maxConcurrency: 2,
        monitor: true,
    });

    await cluster.task(async ({ page, data: acc }) => {
        // Do task ~2 minutes
    });

    // In case of problems, log them
    cluster.on('taskerror', (err, data) => {
        console.log(`  Error crawling ${data}: ${err.message}`);
    });

    // Read the accs.csv file from the current directory
    const csvFile = await fs.readFile(__dirname + '/accs.csv', 'utf8');
    const lines = csvFile.split('\n');
    while(true){
        //for each account in the file
        for (let i = 0; i < lines.length; i++) {
            const line = lines[i];
            cluster.queue(line);
        }
        
        // sleep for a moment...
        await sleep(60000);
    }
    

    await cluster.idle();
    await cluster.close();
};

try{
    run();
} catch(e) {
    console.log(e.message());
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-17 03:06:20

我设法像往常一样使用readline完成了这项工作。我以为是因为终端上显示的监视器不能工作。

如果有人需要一个示例来说明它是如何实现的,请查看以下内容:Break infinite loop user input nodejs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68811040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档