run.resume()
.resume()
メソッドは、一時停止されたワークフローステップの実行を再開し、オプションで新しいコンテキストデータを提供できます。このデータは、そのステップの inputData プロパティからアクセス可能です。
使用方法
await run.resume({
runId: "abc-123",
stepId: "stepTwo",
context: {
secondValue: 100,
},
});
パラメーター
config:
object
ワークフローの再開用設定
config
runId:
string
再開するワークフロー実行の一意な識別子
stepId:
string
再開する一時停止中のステップのID
context?:
Record<string, any>
ステップのinputDataプロパティに注入する新しいコンテキストデータ
戻り値
Promise<LegacyWorkflowResult>:
object
再開されたワークフロー実行の結果
Async/Awaitのフロー
ワークフローが再開されると、実行はステップの実行関数内で suspend()
呼び出しの直後のポイントから続行されます。これにより、コード内で自然なフローが生まれます。
// Step definition with suspend point
const reviewStep = new LegacyStep({
id: "review",
execute: async ({ context, suspend }) => {
// First part of execution
const initialAnalysis = analyzeData(context.inputData.data);
if (initialAnalysis.needsReview) {
// Suspend execution here
await suspend({ analysis: initialAnalysis });
// This code runs after resume() is called
// context.inputData now contains any data provided during resume
return {
reviewedData: enhanceWithFeedback(
initialAnalysis,
context.inputData.feedback,
),
};
}
return { reviewedData: initialAnalysis };
},
});
const { runId, resume, start } = workflow.createRun();
await start({
inputData: {
data: "some data",
},
});
// Later, resume the workflow
const result = await resume({
runId: "workflow-123",
stepId: "review",
context: {
// This data will be available in `context.inputData`
feedback: "Looks good, but improve section 3",
},
});
実行フロー
- ワークフローは
review
ステップ内のawait suspend()
に到達するまで実行されます - ワークフローの状態が保存され、実行が一時停止します
- 後で、新しいコンテキストデータとともに
run.resume()
が呼び出されます - 実行は
review
ステップ内のsuspend()
の直後のポイントから続行されます - 新しいコンテキストデータ(
feedback
)がinputData
プロパティでステップに渡されます - ステップが完了し、その結果を返します
- ワークフローは次のステップへと続行します
エラー処理
resume関数は、いくつかの種類のエラーをスローする可能性があります。
try {
await run.resume({
runId,
stepId: "stepTwo",
context: newData,
});
} catch (error) {
if (error.message === "No snapshot found for workflow run") {
// Handle missing workflow state
}
if (error.message === "Failed to parse workflow snapshot") {
// Handle corrupted workflow state
}
}