translation/translated/documents/course/04-workflows/08-running-workflows-progra...

78 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 以编程方式运行工作流
学习如何从代码执行您的工作流,这对于将它们集成到应用程序中至关重要。
## 创建工作流运行器
创建一个新文件来测试程序化执行:
```typescript
// src/run-workflow.ts
import { mastra } from "./mastra";
async function runContentWorkflow() {
console.log("🚀 Running workflow programmatically...\n");
try {
// Get the workflow instance
const workflow = mastra.getWorkflow("contentWorkflow");
if (!workflow) {
throw new Error("Workflow not found");
}
// Create a run instance
const run = await workflow.createRun();
// Execute with test data
const result = await run.start({
inputData: {
content:
"Climate change is one of the most pressing challenges of our time, requiring immediate action from governments, businesses, and individuals worldwide.",
type: "blog",
},
});
if (result.status === "success") {
console.log("✅ Success!");
console.log(
"📊 Reading time:",
result.result.metadata.readingTime,
"minutes",
);
console.log("🎯 Difficulty:", result.result.metadata.difficulty);
console.log("📅 Processed at:", result.result.metadata.processedAt);
}
} catch (error) {
console.error("❌ Error:", (error as Error).message);
}
}
// Run the workflow
runContentWorkflow();
```
## 运行代码
执行您的工作流运行器:
```bash
npx tsx src/run-workflow.ts
```
## 关键方法
- **`mastra.getWorkflow(id)`**按ID获取注册的工作流
- **`workflow.createRun()`**:创建新的执行实例
- **`run.start(inputData)`**:使用提供的数据执行工作流
## 返回值
`start()` 方法返回:
- **`success`**:表示工作流是否成功完成的布尔值
- **`result`**:工作流的最终输出
- **`executionTime`**:工作流运行所需的时间
您的工作流现在可以从应用程序中的任何位置运行!接下来,您将了解错误处理。