> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 실행.취소() 그만큼`.cancel()`메서드는 Workflow 실행을 취소하고 실행을 중지하며 리소스를 정리합니다. 이 메서드는 실행 중인 모든 단계를 중단하고 Workflow 상태를 '취소됨'으로 업데이트합니다. 이는 활발하게 실행 중인 Workflow와 일시 중지/대기 중인 Workflow 모두에 적용됩니다. ## 사용예 ```typescript const run = await workflow.createRun() await run.cancel() // Returns: { message: 'Workflow run canceled' } ``` ## 매개변수 **매개변수 없음** (`void`): 이 메서드는 매개변수를 받지 않습니다 ## 보고 **result** (`Promise<{ message: string }>`): 취소에 성공하면 { message: 'Workflow run canceled' }와 함께 완료되는 Promise ## 취소 작동 방식 호출되면 Workflow는 다음을 수행합니다. 1. **중단 신호 트리거**- 표준 웹 API AbortSignal을 사용하여 실행 단계를 알립니다. 2. **후속 단계 방지**- 추가 단계는 실행되지 않습니다. ## 중단 신호 동작 `abortSignal` 매개변수를 확인하는 단계는 취소에 응답할 수 있습니다. - 단계에서는 '중단' 이벤트를 수신할 수 있습니다.`abortSignal.addEventListener('abort', callback)` - 이미 중단되었는지 단계에서 확인할 수 있습니다.`if (abortSignal.aborted) { ... }` - 시간 초과, 네트워크 요청 또는 장기 실행 작업을 취소하는 데 유용합니다. 단계에서는 실행 중에 취소될 중단 신호를 적극적으로 확인해야 합니다. 그렇지 않으면 현재 단계가 완료될 때까지 실행되고 후속 단계는 실행되지 않습니다. ## 확장된 사용 예 ### 오류 발생 시 Workflow 취소 ```typescript const run = await workflow.createRun() try { const result = await run.start({ inputData: { value: 'initial data' } }) } catch (error) { await run.cancel() } ``` ### 취소에 응답하는 단계 만들기 ```typescript 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 } }, }) ``` ## 관련된 - [Workflow 개요](https://mastra.zisheng.pro/ko/docs/workflows/overview) - [Workflow.createRun()](https://mastra.zisheng.pro/ko/reference/workflows/workflow-methods/create-run)