명시적인 checkout과 commit을 갖춘 지속적인 작업 목록이 필요할 때 큐를 사용합니다.
// 큐와 처리 - 배치 작업에 큐 사용//// 큐를 사용하면 항목을 순서대로 나열하고, 재시도나 데드 레터 처리를// 포함한 방식으로 처리할 수 있습니다. 페이지 목록 크롤링이나// 데이터 순차 처리에 적합합니다.// 열린 워크스페이스가 필요합니다.
const queueName = "pages_to_visit";
// 여러 항목을 큐에 넣기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("큐에 추가했습니다: " + urls.length + "개");
// 큐 개수 확인const count = g.queue.count(queueName);g.log("큐 안의 항목 수: " + count);
// 항목을 꺼내 처리let processed = 0;while (true) { const item = g.queue.dequeue(queueName); if (!item) break;
g.log("처리 중: " + item.data.url);
// 여기서 실제 작업 수행(이동, 추출 등) // ...
// 완료되면 commit. 나중에 재시도하려면 abort. g.queue.commit(item.id); processed++;}
g.log("처리한 항목 수: " + processed);