-1

I use puppeteer-cluster + node js. I have some script. I'm a newbie

The script runs halfway through and then ends and is not executed further. I've been looking for a solution for a week now, I don't understand what's the matter. Help me please enter code here

const { Cluster } = require('puppeteer-cluster-delay');

(async () => {
    const cluster = await Cluster.launch({
        concurrency: Cluster.CONCURRENCY_CONTEXT,
        maxConcurrency: 2,
        puppeteerOptions: {headless: false,
        },
    });

    await cluster.task(async ({ page, data: url }) => {
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('1');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('2');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('3');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('4');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('5');
        await page.goto('http://www.nike.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('6');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('7');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('8');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('end');
    });

    await cluster.queue();
    await cluster.queue();
    // many more pages

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

the script reaches the 5th iteration and ends ((

1 Answers1

0

We need to use timeout argument in launching puppeteer. Set timeout = 0 to off ones