> ## Documentation Index
> Fetch the complete documentation index at: https://www.krea.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Job Lifecycle

> 생성부터 완료까지 각 Krea 작업 상태를 이해하고, 폴링 패턴, 재시도, 실용적인 오류 처리 전략까지 배워보세요.

## 개요

모든 생성 요청은 동일한 기본 생명주기를 따릅니다:

<img className="w-full mx-auto dark:hidden" src="https://mintcdn.com/krea/ZLw3hmlHm50-cthl/images/job-status.svg?fit=max&auto=format&n=ZLw3hmlHm50-cthl&q=85&s=6cbb1b15fcde8ed4c7d7d84c2637d5c6" alt="Job lifecycle diagram" width="569" height="239" data-path="images/job-status.svg" />

<img className="w-full mx-auto dark:block hidden" src="https://mintcdn.com/krea/ZLw3hmlHm50-cthl/images/job-status-dark.svg?fit=max&auto=format&n=ZLw3hmlHm50-cthl&q=85&s=cc4c42010e1f9fb4688263f83705e37d" alt="Job lifecycle diagram" width="569" height="239" data-path="images/job-status-dark.svg" />

### 작업 상태

<span className="text-sm font-bold text-blue-900 dark:text-blue-100 font-mono bg-blue-100 dark:bg-blue-900/30 border border-blue-300 dark:border-blue-600 px-1.5 py-0.5 rounded mr-1">queued</span> 작업이 처리를 위해 큐에서 대기 중입니다

<span className="text-sm font-bold text-blue-900 dark:text-blue-100 font-mono bg-blue-100 dark:bg-blue-900/30 border border-blue-300 dark:border-blue-600 px-1.5 py-0.5 rounded mr-1">backlogged</span> 작업이 현재 동시성 한도 뒤에서 대기 중입니다

<span className="text-sm font-bold text-blue-900 dark:text-blue-100 font-mono bg-blue-100 dark:bg-blue-900/30 border border-blue-300 dark:border-blue-600 px-1.5 py-0.5 rounded mr-1">scheduled</span> 작업이 승인되었고 처리를 위해 스케줄링되었습니다

<span className="text-sm font-bold text-amber-900 dark:text-amber-100 font-mono bg-amber-100 dark:bg-amber-900/30 border border-amber-300 dark:border-amber-600 px-1.5 py-0.5 rounded mr-1">processing</span> 워커에 의해 작업이 활발히 처리 중입니다

<span className="text-sm font-bold text-amber-900 dark:text-amber-100 font-mono bg-amber-100 dark:bg-amber-900/30 border border-amber-300 dark:border-amber-600 px-1.5 py-0.5 rounded mr-1">sampling</span> 작업이 출력 샘플을 생성 중입니다

<span className="text-sm font-bold text-amber-900 dark:text-amber-100 font-mono bg-amber-100 dark:bg-amber-900/30 border border-amber-300 dark:border-amber-600 px-1.5 py-0.5 rounded mr-1">intermediate-complete</span> 작업이 중간 결과를 가지고 있으며 처리가 계속될 수 있습니다

<span className="text-sm font-bold text-green-900 dark:text-green-100 font-mono bg-green-100 dark:bg-green-900/30 border border-green-300 dark:border-green-600 px-1.5 py-0.5 rounded mr-1">completed</span> 작업이 성공적으로 완료됨. 결과는 `result.urls`에서 확인할 수 있습니다

<span className="text-sm font-bold text-red-900 dark:text-red-100 font-mono bg-red-100 dark:bg-red-900/30 border border-red-300 dark:border-red-600 px-1.5 py-0.5 rounded mr-1">failed</span> 오류로 인해 작업이 실패함. 세부 정보는 `result.error`에서 확인할 수 있습니다

<span className="text-sm font-bold text-gray-900 dark:text-gray-100 font-mono bg-gray-100 dark:bg-gray-900/30 border border-gray-300 dark:border-gray-600 px-1.5 py-0.5 rounded mr-1">cancelled</span> 사용자 또는 시스템에 의해 작업이 취소됨

### 실패 및 취소

**작업 실패**는 여러 이유로 발생할 수 있습니다:

* 생성 서비스에서 반환된 API 오류
* 잘못된 파라미터 또는 지원되지 않는 구성
* 콘텐츠 모더레이션 (NSFW 필터링)
* 자동 타임아웃 감지 (호스팅 도구는 3분, 외부 공급자는 2시간)

**작업을 취소하려면:** `/jobs/{id}`로 `DELETE` 요청을 보내세요. 참고: 작업은 상태가 <span className="text-sm font-bold text-blue-900 dark:text-blue-100 font-mono bg-blue-100 dark:bg-blue-900/30 border border-blue-300 dark:border-blue-600 px-1.5 py-0.5 rounded mr-1">queued</span> 또는 <span className="text-sm font-bold text-amber-900 dark:text-amber-100 font-mono bg-amber-100 dark:bg-amber-900/30 border border-amber-300 dark:border-amber-600 px-1.5 py-0.5 rounded mr-1">processing</span>인 동안에만 취소할 수 있습니다.

<Check>
  **중요:** 실패하거나 취소된 작업은 청구되지 않습니다. 완료된 작업에 대해서만 요금이 부과됩니다.
</Check>

### 작업 상태 확인하기

`/jobs/{id}`로 `GET` 요청을 보내 작업 상태를 폴링하세요. 권장 방법:

* 작업이 대기 중일 때(`backlogged`, `queued`, `scheduled`, `processing`, `sampling`, 또는 `intermediate-complete`)는 2–5초마다 폴링하세요
* 오래 실행되는 작업에는 지수 백오프를 사용하세요
* 상태가 <span className="text-sm font-bold text-green-900 dark:text-green-100 font-mono bg-green-100 dark:bg-green-900/30 border border-green-300 dark:border-green-600 px-1.5 py-0.5 rounded mr-1">completed</span>, <span className="text-sm font-bold text-red-900 dark:text-red-100 font-mono bg-red-100 dark:bg-red-900/30 border border-red-300 dark:border-red-600 px-1.5 py-0.5 rounded mr-1">failed</span>, 또는 <span className="text-sm font-bold text-gray-900 dark:text-gray-100 font-mono bg-gray-100 dark:bg-gray-900/30 border border-gray-300 dark:border-gray-600 px-1.5 py-0.5 rounded mr-1">cancelled</span>가 되면 폴링을 중단하세요
* 일부 작업은 <span className="text-sm font-bold text-amber-900 dark:text-amber-100 font-mono bg-amber-100 dark:bg-amber-900/30 border border-amber-300 dark:border-amber-600 px-1.5 py-0.5 rounded mr-1">processing</span> 상태에서 응답에 미리보기 이미지를 포함할 수 있습니다

**폴링 구현 예시:**

<CodeGroup>
  ```javascript Node.js theme={null}
  // npm install @krea-ai/sdk
  import { Krea } from "@krea-ai/sdk";

  const krea = new Krea({ apiKey: process.env.KREA_API_KEY });

  async function waitForJob(jobId) {
    const job = await krea.jobs.wait(jobId, { intervalMs: 2000 });
    return job.result;
  }
  ```

  ```python Python theme={null}
  import time

  def wait_for_job(job_id):
      while True:
          response = requests.get(
              f"{API_BASE}/jobs/{job_id}",
              headers={"Authorization": f"Bearer {API_TOKEN}"}
          )
          job = response.json()

          if job["status"] == "completed":
              return job["result"]
          if job["status"] in ("failed", "cancelled"):
              raise Exception(f"Job {job['status']}: {job.get('result', {}).get('error')}")

          print(f"Status: {job['status']}")
          time.sleep(2)
  ```
</CodeGroup>

## 다음 단계

<CardGroup cols={2}>
  <Card title="Webhooks" icon="bell" href="/developers/webhooks">
    작업이 완료될 때 알림 받기
  </Card>

  <Card title="Rate Limits" icon="gauge" href="/developers/rate-limits">
    플랜별 API 제한 이해하기
  </Card>

  <Card title="Model APIs" icon="book-open" href="/api-reference/image/flux">
    사용 가능한 모든 엔드포인트와 파라미터 살펴보기
  </Card>

  <Card title="API Keys & Billing" icon="key" href="/developers/api-keys-and-billing">
    API 키 생성 및 관리하기
  </Card>
</CardGroup>
