> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # Run.startAsync() `.startAsync()` 方法会启动 workflow run,但不等待其完成。它会立即返回 `runId`,让 workflow 在后台执行。这适用于长时间运行的 workflow 或计划任务,也能避免因等待 workflow 完成而阻塞。 ## 使用示例 ```typescript 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`): 与 workflow 输入 schema 匹配的输入数据 **requestContext** (`RequestContext`): workflow 执行期间使用的 Request Context 数据 **initialState** (`z.infer`): workflow 执行使用的初始状态 **tracingOptions** (`TracingOptions`): Tracing 配置选项。 **tracingOptions.metadata** (`Record`): 要添加到根 trace span 的 metadata。可用于添加用户 ID、会话 ID 或 feature flag 等自定义属性。 **tracingOptions.traceId** (`string`): 此次执行使用的 trace ID(1-32 个十六进制字符)。提供后,此 trace 将归入指定的 trace。 **outputOptions** (`OutputOptions`): 输出配置选项。 **outputOptions.includeState** (`boolean`): 是否在结果中包含 workflow run 状态。 ## 返回值 **runId** (`string`): 此 workflow run 的唯一标识符。可用它稍后检查状态或获取结果。 ## 何时使用 `startAsync()` 在以下情况中,请使用 `startAsync()` 而不是 `start()`: - **长时间运行的 workflow**:workflow 可能需要数分钟或数小时才能完成 - **计划任务/cron 触发器**:希望触发 workflow,而不阻塞调度器 - **避免轮询失败**:对于 Inngest workflow,`start()` 会轮询完成状态,这可能失败并引发重试。`startAsync()` 可避免此问题 - **后台处理**:希望将工作加入队列并异步处理结果 ## 检查 workflow 状态 调用 `startAsync()` 后,可以通过以下方式检查 workflow 状态: ```typescript // 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()](https://mastra.zisheng.pro/reference/workflows/run-methods/start):启动 workflow 并等待其完成 - [Workflows 概览](https://mastra.zisheng.pro/docs/workflows/overview) - [Workflow.createRun()](https://mastra.zisheng.pro/reference/workflows/workflow-methods/create-run)