← Torna alle soluzioni

Mettere URL in coda ed elaborarli

Aggiungi URL a una coda dello spazio di lavoro, estrai ogni elemento e conferma il lavoro completato.

Code e processi di lavoro Intermedio JavaScript queue_and_process.js

Prerequisiti

  • Uno spazio di lavoro Guida aperto

Risultato atteso

Guida mette in coda tre record URL, li elabora uno alla volta e li rimuove dalla coda.

Esempio di codice sorgente

queue_and_process.js

Usa le code quando vuoi un elenco durevole di elementi di lavoro con comportamento esplicito di estrazione e commit.

// Coda ed elaborazione: usa code di lavoro per attività in blocco
//
// Le code permettono di allineare elementi da elaborare, con logica
// integrata di nuovi tentativi e coda degli scarti. Ottime per crawl di
// elenchi di pagine o per elaborare dati in ordine.
// Richiede uno spazio di lavoro aperto.
const queueName = "pages_to_visit";
// Metti in coda diversi elementi
const urls = [
"https://example.com/page1",
"https://example.com/page2",
"https://example.com/page3"
];
for (const url of urls) {
g.queue.enqueue(queueName, {
url: url,
addedAt: new Date().toISOString()
});
}
g.log("Messi in coda " + urls.length + " elementi");
// Controlla la dimensione della coda
const count = g.queue.count(queueName);
g.log("La coda contiene " + count + " elemento/i");
// Estrai ed elabora ogni elemento
let processed = 0;
while (true) {
const item = g.queue.dequeue(queueName);
if (!item) break;
g.log("Elaborazione: " + item.data.url);
// Svolgi qui il lavoro (navigazione, estrazione, ecc.)
// ...
// Commit per rimuovere dalla coda, oppure abort per riprovare più tardi
g.queue.commit(item.id);
processed++;
}
g.log("Elaborati " + processed + " elemento/i");