콘텐츠로 이동

큐 워커

큐 워커는 큐에 들어간 항목을 지속적으로 꺼내 스크립트로 처리하는 실행 단위입니다. 많은 URL, 상품, 채용 공고, 문서 등을 여러 브라우저 탭에서 처리할 수 있습니다.

  • 대량 URL 크롤링
  • 사이트별 데이터 추출
  • 로컬 LLM을 통한 분류나 요약
  • 실패 항목 재시도
  • 워크플로 원장과 연결된 운영 처리

워커 안의 스크립트는 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을 정확한 큐 깊이로 표시하지 마십시오. 워크플로 보류 또는 큐 그룹 대기 시간 때문에 실행 가능한 항목이 일시적으로 0이 될 수 있으며, 이는 실패나 완료를 의미하지 않습니다.

  • 한 항목의 처리를 작게 유지
  • 실패 이유를 로그나 Workflow Ledger에 남기기
  • 같은 항목을 다시 시도해도 깨지지 않게 만들기
  • 인증 정보는 인증 정보에 저장
  • 사이트별 속도 제한과 robots.txt 존중

워크플로 정보가 있는 항목은 Guida가 큐와 Workflow Ledger 결과를 명시적으로 조정합니다. 큐가 비었거나 워커가 중지되었다는 사실만으로 모든 항목의 성공을 판단할 수 없습니다.

관련 페이지: