安装部署

崩溃恢复

生产环境难免遇到进程崩溃、OOM、机器重启。链盒的崩溃恢复机制确保这些情况下 流程不会丢失,能自动恢复执行。

恢复流程

  1. 进程异常退出(崩溃/OOM/手动 kill)
  2. 容器编排(Docker/K8s)自动重启进程
  3. 引擎启动时扫描数据库中状态为「运行中」但实际无进程在跑的流程
  4. 对每个中断的流程,从最后成功的步骤恢复执行

整个过程自动完成,无需人工干预。恢复时间取决于中断流程的数量, 通常在进程启动后几十秒内完成。

保证不重复执行

恢复时,引擎依据持久化的步骤记录判断从哪里继续:

  • 已成功完成的步骤:跳过,不重跑
  • 正在执行但未确认完成的步骤:重新执行该步骤(幂等设计可避免副作用)
  • 未开始的步骤:正常执行

因此,设计流程时建议让动作幂等(重复执行结果一致), 如用唯一 ID 去重、用 upsert 代替 insert,进一步提升恢复安全性。

数据库是恢复的基础

所有恢复依据都存在 PostgreSQL。因此:

  • 数据库必须持久化(不要用临时存储)
  • 定期备份,详见 Docker Compose 部署的备份章节
  • 数据库损坏会丢失未恢复的运行记录(已完成的流程结果不受影响)

资源预留

为避免因资源不足导致频繁崩溃,生产环境应:

  • 给容器设置合理的资源 limit(CPU/内存),避免单流程拖垮整机
  • PostgreSQL/Redis 预留独立资源,不被应用挤占
  • 监控内存使用,及时扩容或增加 Worker 实例

详见 生产环境配置的资源规划建议。