Loading...
Loading...
Compare original and translation side by side
apps/api/src/lib/workflows/apps/api/src/lib/workflows/apps/api/src/lib/workflows/
├── cars/ # Car registration data workflows
│ └── update.ts # Scheduled car data updates
├── coe/ # COE bidding data workflows
│ └── update.ts # Scheduled COE data updates
└── social/ # Social media posting workflows
├── discord.ts
├── linkedin.ts
├── telegram.ts
└── twitter.tsapps/api/src/lib/workflows/
├── cars/ # 车辆注册数据工作流
│ └── update.ts # 定时车辆数据更新
├── coe/ # COE竞拍数据工作流
│ └── update.ts # 定时COE数据更新
└── social/ # 社交媒体发布工作流
├── discord.ts
├── linkedin.ts
├── telegram.ts
└── twitter.tsimport { serve } from "@upstash/workflow";
export const POST = serve(async (context) => {
// Step 1: Fetch data
await context.run("fetch-data", async () => {
// Fetching logic
});
// Step 2: Process data
const processed = await context.run("process-data", async () => {
// Processing logic
});
// Step 3: Store results
await context.run("store-results", async () => {
// Storage logic
});
});import { serve } from "@upstash/workflow";
export const POST = serve(async (context) => {
// 步骤1:获取数据
await context.run("fetch-data", async () => {
// 获取数据逻辑
});
// 步骤2:处理数据
const processed = await context.run("process-data", async () => {
// 处理数据逻辑
});
// 步骤3:存储结果
await context.run("store-results", async () => {
// 存储逻辑
});
});infra/infra/await context.run("step-name", async () => {
try {
// Logic here
} catch (error) {
console.error("Step failed:", error);
// Log to monitoring service
throw error; // Re-throw for workflow retry
}
});await context.run("step-name", async () => {
try {
// 业务逻辑
} catch (error) {
console.error("步骤失败:", error);
// 记录到监控服务
throw error; // 抛出错误以触发工作流重试
}
});context.run()apps/api/src/routes/context.run()apps/api/src/routes/DATABASE_URLUPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENQSTASH_TOKENDATABASE_URLUPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENQSTASH_TOKENpnpm -F @sgcarstrends/api test -- src/lib/workflowsundefinedpnpm -F @sgcarstrends/api test -- src/lib/workflowsundefinedundefinedundefinedapps/api/src/routes/workflows.tsapps/api/src/config/qstash.tsapps/api/CLAUDE.mdapps/api/src/routes/workflows.tsapps/api/src/config/qstash.tsapps/api/CLAUDE.md