Run.cancel()
.cancel() メソッドは Workflow Run をキャンセルし、実行を停止してリソースをクリーンアップします。
このメソッドは実行中のすべてのステップを中止し、Workflow のステータスを 'canceled' に更新します。現在実行中の Workflow と、中断中または待機中の Workflow のどちらにも使用できます。
使用例使用例への直接リンク
const run = await workflow.createRun()
await run.cancel()
// Returns: { message: 'Workflow run canceled' }
パラメーターパラメーターへの直接リンク
No parameters:
void
このメソッドはパラメーターを受け取りません
戻り値戻り値への直接リンク
result:
Promise<{ message: string }>
キャンセルに成功すると { message: 'Workflow run canceled' } で解決される Promise
キャンセルの仕組みキャンセルの仕組みへの直接リンク
呼び出されると、Workflow は次の処理を行います。
- abort signal をトリガー - 標準の Web API AbortSignal を使用して実行中のステップに通知します
- 後続ステップの実行を防止 - 以降のステップは実行されません
Abort signal の動作Abort signal の動作への直接リンク
abortSignal パラメーターを確認するステップは、キャンセルに応答できます。
- ステップは 'abort' イベントをリッスンできます:
abortSignal.addEventListener('abort', callback) - ステップはすでに中止されているか確認できます:
if (abortSignal.aborted) { ... } - タイムアウト、ネットワークリクエスト、長時間実行される処理のキャンセルに役立ちます
実行途中でキャンセルするには、ステップが abort signal を能動的に確認する必要があります。確認しない場合、現在のステップは完了まで実行されますが、後続のステップは実行されません。
その他の使用例その他の使用例への直接リンク
エラー発生時に 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 }
},
})