キューワーカー
キューワーカーは、キューに入った項目を継続的に取り出し、スクリプトで処理する実行単位です。大量の URL、商品、求人、ドキュメントなどを複数のブラウザータブで処理できます。
- 大量 URL のクロール
- サイトごとのデータ抽出
- ローカル LLM による分類や要約
- 失敗項目の再試行
- ワークフロー台帳と結び付けた運用処理
ワーカー文脈
Section titled “ワーカー文脈”ワーカー内のスクリプトは g.worker.getContext() で現在の項目を取得できます。
const ctx = g.worker.getContext();const item = ctx.item;
await g.nav.navigateToUrl(item.data.url);await g.dom.waitForDomStable();
g.store.put("results", item.data.url, { url: item.data.url, html: await g.page.getDom(),});
g.queue.commit(item.id);スクリプトからは g.workers.start()、g.workers.stop()、g.workers.pause()、g.workers.resume()、g.workers.status() を使えます。運用時は Queue Console で状態を見ながら開始、停止、復旧を行うのが分かりやすいです。
状態には、実行中の件数に加えて inFlightItems、remainingKnown、
eligibleRemaining、heldItemCount、heldGroupCount、nextEligibleAt、
waitingReason、activeRunOneCount、runOneTaskId が含まれます。
remainingKnown が偽の場合、remaining を正確なキュー件数として表示しないでください。ワークフローによる保留やキューグループの待機時間により、実行可能件数が一時的にゼロになることがあります。これは失敗でも完了でもありません。
設計上の注意
Section titled “設計上の注意”- 1 項目の処理を小さく保つ
- 失敗理由をログや Workflow Ledger に残す
- 同じ項目を再試行しても壊れないようにする
- 認証情報は 認証情報 に保存する
- サイトごとの速度制限や
robots.txtを尊重する
ワークフロー情報を持つ項目では、Guida がキューと Workflow Ledger の結果を明示的に照合します。キューが空であることやワーカーが停止したことだけでは、全項目の成功を証明できません。
関連ページ: