실행.취소()
그만큼.cancel()메서드는 Workflow 실행을 취소하고 실행을 중지하며 리소스를 정리합니다.
이 메서드는 실행 중인 모든 단계를 중단하고 Workflow 상태를 '취소됨'으로 업데이트합니다. 이는 활발하게 실행 중인 Workflow와 일시 중지/대기 중인 Workflow 모두에 적용됩니다.
사용예사용예에 대한 직접 링크
const run = await workflow.createRun()
await run.cancel()
// Returns: { message: 'Workflow run canceled' }
매개변수매개변수에 대한 직접 링크
매개변수 없음:
void
이 메서드는 매개변수를 받지 않습니다
보고보고에 대한 직접 링크
result:
Promise<{ message: string }>
취소에 성공하면 { message: 'Workflow run canceled' }와 함께 완료되는 Promise
취소 작동 방식취소 작동 방식에 대한 직접 링크
호출되면 Workflow는 다음을 수행합니다.
- 중단 신호 트리거- 표준 웹 API AbortSignal을 사용하여 실행 단계를 알립니다.
- 후속 단계 방지- 추가 단계는 실행되지 않습니다.
중단 신호 동작중단 신호 동작에 대한 직접 링크
abortSignal 매개변수를 확인하는 단계는 취소에 응답할 수 있습니다.
- 단계에서는 '중단' 이벤트를 수신할 수 있습니다.
abortSignal.addEventListener('abort', callback) - 이미 중단되었는지 단계에서 확인할 수 있습니다.
if (abortSignal.aborted) { ... } - 시간 초과, 네트워크 요청 또는 장기 실행 작업을 취소하는 데 유용합니다.
단계에서는 실행 중에 취소될 중단 신호를 적극적으로 확인해야 합니다. 그렇지 않으면 현재 단계가 완료될 때까지 실행되고 후속 단계는 실행되지 않습니다.
확장된 사용 예확장된 사용 예에 대한 직접 링크
오류 발생 시 Workflow 취소오류 발생 시 Workflow 취소에 대한 직접 링크
const run = await workflow.createRun()
try {
const result = await run.start({ inputData: { value: 'initial data' } })
} catch (error) {
await run.cancel()
}
취소에 응답하는 단계 만들기취소에 응답하는 단계 만들기에 대한 직접 링크
const step = createStep({
id: 'long-running-step',
execute: async ({ inputData, abortSignal, abort }) => {
const timeout = new Promise(resolve => {
const timer = setTimeout(() => resolve('done'), 10000)
// Clean up if canceled
abortSignal.addEventListener('abort', () => {
clearTimeout(timer)
resolve('canceled')
})
})
const result = await timeout
// Check if aborted after async operation
if (abortSignal.aborted) {
return abort() // Stop execution
}
return { result }
},
})