본문으로 건너뛰기

실행.startAsync()

그만큼.startAsync()메서드는 완료를 기다리지 않고 Workflow 실행을 시작합니다. 와 함께 즉시 반환됩니다.runId, Workflow가 백그라운드에서 실행될 수 있도록 합니다. 이는 장기 실행 Workflow나 예약된 작업에 유용합니다. 또한 Workflow 완료 시 차단을 방지합니다.

사용예
사용예에 대한 직접 링크

const run = await workflow.createRun()

// Fire-and-forget - returns immediately
const { runId } = await run.startAsync({
inputData: {
value: 'initial data',
},
})

// Optionally poll for completion later
const result = await workflow.getWorkflowRunExecutionResult(runId)

매개변수
매개변수에 대한 직접 링크

inputData?:

z.infer<TInput>
Workflow의 입력 스키마와 일치하는 입력 데이터입니다

requestContext?:

RequestContext
Workflow 실행 중 사용할 Request Context 데이터입니다

initialState?:

z.infer<TState>
Workflow 실행에 사용할 초기 상태입니다

tracingOptions?:

TracingOptions
Tracing 구성을 위한 옵션입니다.

metadata?:

Record<string, any>
루트 Trace span에 추가할 메타데이터입니다. 사용자 ID, 세션 ID 또는 기능 플래그와 같은 사용자 정의 속성을 추가할 때 유용합니다.

traceId?:

string
이 실행에 사용할 Trace ID입니다(1~32자의 16진수). 제공하면 이 Trace가 지정된 Trace의 일부가 됩니다.

outputOptions?:

OutputOptions
출력 구성을 위한 옵션입니다.

includeState?:

boolean
결과에 Workflow 실행 상태를 포함할지 여부입니다.

보고
보고에 대한 직접 링크

runId:

string
이 Workflow 실행의 고유 식별자입니다. 나중에 상태를 확인하거나 결과를 가져올 때 사용합니다.

언제 사용하나요?startAsync()
when-to-use-startasync에 대한 직접 링크

다음과 같은 경우 start() 대신 startAsync()를 사용하세요.

  • 장기 실행 Workflow: Workflow를 완료하는 데 몇 분 또는 몇 시간이 걸릴 수 있습니다.
  • 예약된/크론 트리거: 스케줄러를 차단하지 않고 Workflow를 트리거하려는 경우입니다.
  • 폴링 실패 방지: Ingest Workflow를 사용하면 start()가 완료될 때까지 폴링하므로 실패하여 재시도가 발생할 수 있습니다. startAsync()는 이 문제를 방지합니다.
  • 백그라운드 처리: 작업을 대기열에 추가하고 결과를 비동기적으로 처리하려는 경우입니다.

Workflow 상태 확인 중
Workflow 상태 확인 중에 대한 직접 링크

startAsync()를 호출한 후 다음을 사용하여 Workflow 상태를 확인할 수 있습니다.

// Get the execution result (including step outputs)
const result = await workflow.getWorkflowRunExecutionResult(runId)

if (result?.status === 'success') {
console.log('Workflow completed:', result.steps)
} else if (result?.status === 'failed') {
console.log('Workflow failed:', result.error)
} else if (result?.status === 'running') {
console.log('Workflow still running...')
}