
workflow
用 PHP 写长流程,断了也能接着跑
这是一个 PHP 生态的持久化工作流引擎核心包,主要面向 Laravel 应用。它解决的问题是:传统队列和异步任务在进程重启、服务宕机或长时间等待后容易丢失状态,导致订单超时、支付回调、数据管道等长流程难以可靠完成。项目通过持久化执行(durable execution)机制,把工作流每一步的状态写入专用存储连接,即使服务中断也能从断点恢复。核心能力包括:定义和运行长时间运行的工作流与活动(activity)、自动重试、队列调度、并行分支执行、工作流实时监控、独立存储连接,以及面向微服务、数据管道、Saga 事务和 AI Agent 工作流的编排能力。开发者可以用接近普通 PHP 代码的方式描述复杂业务流程,由引擎负责状态持久化、失败恢复和并发控制,适合需要高可靠性的后端业务系统。
项目数据
使用教程
环境要求
- 已有一个 Laravel 应用(本包为 Laravel 嵌入式运行时)
- 安装 Composer 与 PHP 运行环境
- 数据库可连接(php artisan migrate 需要写入持久化表)
- 配置好 Laravel 队列驱动(可跑 php artisan queue:work 或 Horizon)
安装与启动步骤
-
1引入工作流包
在 Laravel 项目根目录用 Composer 安装 durable-workflow/workflow 2.x 版本,安装后代码即可使用该包提供的运行时能力。
composer require durable-workflow/workflow:^2.0 -
2创建持久化数据表
执行 Laravel 迁移,建立工作流状态所需的持久化表,这是断点恢复的基础。
php artisan migrate -
3选择部署方式
嵌入式由本应用负责存储与队列;自托管 Server 需另运维 MySQL、Redis;Cloud 为托管运行时。README 提示迁移到 Server/Cloud 不会改变已有嵌入式历史。
-
4启动队列 worker
运行 Laravel 队列 worker(或使用 Horizon)来实际执行工作流与活动,需保持进程常驻。
php artisan queue:work
如何确认成功
运行 php artisan queue:work 后进程正常驻留不报错,且迁移成功生成了工作流相关数据表。
常见问题
Q:必须安装 Durable Workflow Server 吗?
A:不必。嵌入式 Laravel 模式下工作流和活动直接运行在你的 Laravel 应用内,由应用自己负责持久化与队列执行,无需额外部署 Server。
Q:为什么必须跑 queue:work?
A:README 明确说明工作流与活动由 Laravel 队列 worker 或 Horizon 执行,只安装包而不启动 worker,任务不会被消费执行。
Q:以后想换到 Server 或 Cloud 会不会影响已有任务?
A:README 说明把新工作迁移到 Server 或 Cloud 不会重新解释已有的嵌入式历史,两者可并存。
Q:支持 PHP 之外的语言吗?
A:自托管 Server 与 Durable Workflow Cloud 支持独立 worker,Cloud 可用于 PHP、Python 和 Rust worker;嵌入式模式仅限 Laravel 应用。
注意事项
- 本包是库/运行时而非独立服务,必须挂在已有 Laravel 项目中安装。
- README 未给出配置项、端口或环境变量说明,若需调优请参考官网 durable-workflow.com。
- 生产环境建议用 Horizon 或进程守护工具保证队列 worker 长时间存活。
核心亮点
- 支持持久化执行,进程重启或宕机后工作流可从断点恢复,不会丢状态
- 内置重试、队列、并行执行和监控,复杂编排不用自己造轮子
- 专为 Laravel 设计,API 贴近原生 PHP 开发习惯,接入成本低
不足之处
- 强依赖 Laravel 生态,非 Laravel 的 PHP 项目接入困难
- 项目星标约 1.2k,社区规模和第三方教程相对有限,文档待持续完善
适用场景
- 电商订单超时取消与支付回调的长时间状态流转
- 微服务之间的 Saga 分布式事务编排与补偿
- 数据管道或 AI Agent 多步骤任务的可靠调度与重试
替代项目
Temporal、Laravel Horizon、Symfony Workflow
项目介绍
同类项目推荐
n8n
开源
拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。
Fair-code workflow automation platform with native AI capabilities. Combine visual b···
robotcode
开源
让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。
Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···
puppeteer
开源
用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。
JavaScript API for Chrome and Firefox
customermates
开源
比 Pipedrive 直观 10 倍的现代开源 CRM,轻松管理客户与自动化流程。
Building a modern alternative to Pipedrive that is 10x more intuitive.