Run.startAsync()
.startAsync() メソッドは、完了を待たずに Workflow Run を開始します。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 に追加する metadata。ユーザー ID、セッション ID、feature flag などのカスタム属性を追加する場合に役立ちます。
traceId?:
string
この実行に使用する trace ID(1〜32 文字の 16 進数)。指定すると、この trace は指定した trace の一部になります。
outputOptions?:
OutputOptions
出力設定のオプション。
includeState?:
boolean
結果に Workflow Run の状態を含めるかどうか。
戻り値戻り値への直接リンク
runId:
string
この Workflow Run の一意な識別子。後からステータスの確認や結果の取得に使用します。
startAsync() を使用する場面when-to-use-startasyncへの直接リンク
次の場合は start() ではなく startAsync() を使用します。
- 長時間実行される Workflow: Workflow の完了に数分または数時間かかる可能性がある場合
- スケジュール/cron トリガー: スケジューラーをブロックせずに Workflow をトリガーしたい場合
- ポーリング失敗の回避: Inngest 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...')
}
関連項目関連項目への直接リンク
- Run.start(): Workflow を開始し、完了まで待機
- Workflow の概要
- Workflow.createRun()