明示的な 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);