Как модулировать код кукловода-кластера? - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в этом модуле. Я слышал, что это лучше, чем просто использовать кукольник, потому что он может выполнять задачи параллельно. В любом случае, мне нужна помощь в разбиении кода на модули. Вот пример программы на странице npm:

const { Cluster } = require('puppeteer-cluster');
 
(async () => {
  const cluster = await Cluster.launch({
    concurrency: Cluster.CONCURRENCY_CONTEXT,
    maxConcurrency: 2,
  });
 
  await cluster.task(async ({ page, data: url }) => {
    await page.goto(url);
    const screen = await page.screenshot();
    // Store screenshot, do something else
  });
 
  cluster.queue('http://www.google.com/');
  cluster.queue('http://www.wikipedia.org/');
  // many more pages
 
  await cluster.idle();
  await cluster.close();
})();

Я хочу примерно следующее:

main. js инициализирует кластер

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

functions. js имеет все задачи

async function screenshot(){
// ...
}

async function getTitle(){
// ...
}

, поэтому я мог бы сделать что-то вроде этого:

functions.getTitle('http://www.google.com/');
functions.screenshot('http://www.wikipedia.org/');

вместо того, чтобы делать все в одном файле. как я могу сделать что-то подобное?

...