Workflows2026年5月7日·1 分钟阅读

Trigger.dev v3 — Durable Background Jobs with No Timeouts

Trigger.dev v3 runs durable TypeScript background jobs with no Lambda 15-min limit. Subtasks, retries, queues, dead letter, realtime UI streaming.

Agent 就绪

这个资产可以被 Agent 直接读取和安装

TokRepo 同时提供通用 CLI 命令、安装契约、metadata JSON、按适配器生成的安装计划和原始内容链接,方便 Agent 判断适配度、风险和下一步动作。

Native · 98/100策略:允许
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Single
信任
信任等级:New
入口
Asset
通用 CLI 安装命令
npx tokrepo install 5b1f380e-5a4d-4504-ae92-de4d40d615b6

简介

Trigger.dev v3 是 TypeScript 的持久化执行引擎。任务可以跑任意长(没有 Lambda 15 分钟上限)、能扛重启、支持子任务、重试、队列、死信队列、实时流式推进度到 UI。适合长 agent 运行、视频/文件处理、超出 serverless 限制的 AI 生成流水线。需要 Node 20+,Bun,Deno(预览)。装机时间 5 分钟。


定义任务

// trigger/process-video.ts
import { task, logger } from "@trigger.dev/sdk/v3";

export const processVideo = task({
  id: "process-video",
  maxDuration: 3600,  // 1 小时也行
  retry: { maxAttempts: 3 },
  run: async ({ videoUrl }: { videoUrl: string }) => {
    logger.info("Downloading", { url: videoUrl });
    const local = await downloadVideo(videoUrl);

    logger.info("Transcoding");
    const transcoded = await transcode(local);

    logger.info("Uploading");
    const uploadedUrl = await uploadToS3(transcoded);

    return { url: uploadedUrl };
  },
});

从你的应用触发

import { tasks } from "@trigger.dev/sdk/v3";
import type { processVideo } from "@/trigger/process-video";

const handle = await tasks.trigger<typeof processVideo>(
  "process-video",
  { videoUrl: "https://example.com/clip.mp4" },
);

return Response.json({ runId: handle.id });

把进度流给 UI

// React 组件
import { useRealtimeRun } from "@trigger.dev/react-hooks";

const { run, error } = useRealtimeRun(runId, { accessToken: publicToken });
return <Progress percent={run?.metadata?.percent ?? 0} status={run?.status} />;

子任务并行

const transcribeVideo = task({
  id: "transcribe-video",
  run: async ({ videoUrl }) => {
    const chunks = await splitVideo(videoUrl);
    const transcripts = await Promise.all(
      chunks.map((chunk) =>
        transcribeChunk.triggerAndWait({ chunk }))
    );
    return mergeTranscripts(transcripts.map(r => r.output));
  },
});

子任务在 Trigger 基础设施上并行跑,父任务等待所有返回再继续。


FAQ

Q: Trigger.dev 免费吗? A: 免费 —— Apache 2.0 开源。自己用 Postgres + Docker 跑免费。Trigger.dev Cloud 有免费档(5K 次/月)和付费档(更高并发、更长保留)。

Q: 跟 Inngest 啥区别? A: 都是持久执行平台。Trigger.dev TypeScript 优先,跟 React/Next.js 集成更深(realtime hook)。Inngest 跨 TS + Python,事件驱动原语。按生态适配选。

Q: 任务跑到一半服务器挂了怎么办? A: Trigger.dev 会 checkpoint 状态。重启后任务从最后一个完成 step 继续。长运行操作(下载、AI 生成)能扛部署和崩溃。


🙏

来源与感谢

Built by Trigger.dev. Licensed under Apache-2.0.

triggerdotdev/trigger.dev — ⭐ 12,000+

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产