@adonis-agora/durable

中文文档
0.59.0发布于 2026/11/05MITTypeScriptES Module构建来源已验证近 30 天下载 1.4万

AdonisJS的可持久跨应用工作流程——定型重放引擎,AdonisJS捆绑,Ace命令,仪表板,OpenTeleometry,望远镜,测试拉带和Redis的收录,都在一个包中. 阿戈拉生态系统的一部分.

中文使用文档
文档目录3 节
  1. 运输
  2. 工作流代码( assembler hook)
  3. 许可证

@adonis-agora/durable

npm version npm downloads CI license

AdonisJS 的可持久、可更新的工作流程: 将工作流程写成纯音码; 每一步都是 检查完毕,所以跑道能幸存下来 坠机,部署和恢复到最后一步. 步骤可在流程中运行,也可在远程工人(其他Adonis流程、NestJS员工或 Python工人),它保持一个运行的时间段.

node ace add @adonis-agora/durable

定义工作流程 app/workflows/ (自动注册在靴子上):

// app/workflows/order_workflow.ts
import { BaseWorkflow, type WorkflowCtx } from '@adonis-agora/durable'

export default class OrderWorkflow extends BaseWorkflow {
  static workflow = { name: 'order', version: '1' }

  async run(ctx: WorkflowCtx, order: { id: number; total: number }) {
    const charge = await ctx.localStep('charge', async () => chargeCard(order))
    await ctx.localStep('ship', async () => ship(charge))
    return { status: 'shipped' }
  }
}

从控制器开始,并使用引擎服务 其他一切:

import OrderWorkflow from '#workflows/order_workflow'
import engine from '@adonis-agora/durable/services/main'

const { runId } = await OrderWorkflow.dispatch({ id: 1, total: 4200 }, { runId: 'order:1' })
const result = await engine.waitForRun(runId)

默认为内存存储 + 只测试 memory 运输(单一工艺,以下为零). 提供长期储存和跨流程运输 config/durable.ts 用于生产. 何时 @adonis-agora/context 安装了原租户/用户/同族运输机 每一个派遣的任务(最优等,无严重依赖).

完整文档 : https://davidecarvalho.github.io/agora/docs/ducable 页面存档备份,存于互联网档案馆

运输

按名称在 config/durable.ts数字 :

  • transports.eventEmitter() —— 说 生产 在一个节点上运输 EventEmitter零外部基础设施(没有DB、没有Redis、没有经纪人):步骤 处理器在同一过程中运行,与发送工作流程脱钩 事件循环。 用于单流程生产应用.
  • transports.queue({ connection }) ——跨流程结束 @adonisjs/queue。 。 。 .
  • transports.db({ connection }) ——跨应用程序数据库的跨进程 (单位:千美元)@adonisjs/lucid没有经纪人.
  • transports.bullmq({ connection }) ——在Redis上的BullMQ上交叉处理相容电线 与雀巢nestjs-durable公牛MQ运输与Python工人. 说对了 controlPlanes.redis(...)。 。 。 .
  • transports.memory() ——只测试(驱动器) dispatch 直入接头.
import { defineConfig, transports } from '@adonis-agora/durable'

export default defineConfig({
  transport: 'event-emitter',
  transports: {
    'event-emitter': transports.eventEmitter(),
  },
})

工作流代码( assembler hook)

node ace configure 登记两个AdonisJS 阿森布尔 init 钩子 生成 类型桶 app/workflows/ 财务报告和审定财务报表 app/steps/ 建立/保存时间——核心是如何生成的 控制器/活动/听众桶。 提供者进口生成的 装入桶并登记 BaseWorkflow 类和步骤,而不是扫描 目录 readdir 在运行时间。 文件监视器重生一桶 当工作流程或步骤文件更改时。 桶通过 #workflows/* 财务报告和审定财务报表 #steps/* 子路径导入, 其中 configure 添加到您身边 package.json。 。 。 .

登记在册 adonisrc.ts (单位:千美元) configure 命令执行此任务 :

export default defineConfig({
  hooks: {
    init: [
      () => import('@adonis-agora/durable/hooks/workflows'),
      () => import('@adonis-agora/durable/hooks/steps'),
    ],
  },
})

如果钩子没有注册(或枪管尚未生成) 提供者 掉头 到运行时目录扫描,所以不选择加入的应用程序 保持工作不变。 完全脱离发现 workflowsPath: false (或 stepsPath: false) (中文(简体) ).

一个模块化的应用程序可以列出多个目录: workflowsPath 编号 : stepsPath 带 一个阵列,钩子也一样 source 选项。 名字必须是独特的 这些目录, 冲突失败, 无法命名两个文件 .

许可证

麻省理工学院

版本与发布记录

@adonis-agora/durable 共发布 112 个版本,首次发布于 2026/06/23;过去 12 个月发布了 112 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.59.0latest2026/11/051 天前
0.58.32026/11/023 天前
0.58.22026/10/315 天前
0.58.12026/10/306 天前
0.58.02026/10/307 天前
0.57.12026/10/297 天前

关于 @adonis-agora/durable 的常见问题

@adonis-agora/durable 是什么?

AdonisJS的可持久跨应用工作流程——定型重放引擎,AdonisJS捆绑,Ace命令,仪表板,OpenTeleometry,望远镜,测试拉带和Redis的收录,都在一个包中. 阿戈拉生态系统的一部分.

如何安装 @adonis-agora/durable?

在项目目录运行 npm install @adonis-agora/durable,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@adonisjs/core(^7.3.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@adonis-agora/durable 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adonis-agora/durable 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adonis-agora/durable 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@adonis-agora/durable 可以商用吗?

@adonis-agora/durable 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@adonis-agora/durable 的下载量有多少?

根据 npm 官方下载统计,@adonis-agora/durable 在 2026/10/05 – 2026/11/03 这 30 天内被下载 13,863 次,日均约 462 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adonis-agora/durable 还在维护吗?

最新版本 0.59.0 发布于 2026/11/05(1 天前);至今共发布 112 个版本,其中过去 12 个月发布了 112 个;首次发布于 2026/06/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。