
- 打开微信,搜索「软件教程管家」关注,或长按下方二维码关注
- 回复关键词 laravel-queueable-action
- 公众号自动回复网盘链接,点击即可保存下载
打开微信扫一扫关注或搜索【软件教程管家】
项目介绍
laravel-queueable-action 是 Spatie 出品的 Laravel 扩展包,它把业务逻辑封装成可排队 Action 类:同一个 Action 既可以直接同步执行,也可以交给 Laravel 队列异步执行。Action 的写法和普通类一样,用 __invoke() 定义要做的事情,用 execute() 把它派发到队列里去,不用再为同步和异步各写一套代码。
这个包还配套了队列名称指定、Artisan 生成命令、测试断言、Action 链式调用、Horizon 标签、任务中间件和重试退避时间等能力,适合已经在用 Laravel 队列、想把业务逻辑拆成可复用单元的团队。
| 仓库 | spatie/laravel-queueable-action |
| 语言 | PHP |
| 许可证 | MIT |
| Star 数 | 701 |
GitHub 国内访问较慢,如打不开可多刷新几次
适用场景
如果你已经在用 Laravel 队列,又希望业务逻辑有一个统一的组织方式,这个包值得评估。典型场景包括:订单处理、通知发送、数据同步等可以异步化的业务流程,拆成独立 Action 后按需同步或异步执行;需要为 Action 写队列测试断言的项目;需要把多个 Action 串联执行的流程;需要在 Horizon 里给任务打自定义标签的应用。
反过来,如果项目里只有一两个简单的闭包任务,或者根本没用 Laravel 队列,引入这个包的收益就很有限,直接用框架自带的任务机制更轻量。
可排队 Action 的上手步骤
第一步,用 Composer 安装扩展包:
composer require spatie/laravel-queueable-action
第二步,用 Artisan 命令生成一个 Action 类,也可以选择生成可排队版本或同步版本:
php artisan make:action ProcessOrderAction
第三步,在 Action 类里用 __invoke() 写业务逻辑,方法参数就是任务执行时需要的数据:
class ProcessOrderAction
{
public function __invoke(Order $order)
{
// 在这里写订单处理逻辑
}
}
第四步,调用执行。直接同步执行就调用这个 Action 本身;想走队列,就调 execute(),它会把 Action 作为队列任务派发出去,还可以用 onQueue() 指定队列名称:
(new ProcessOrderAction)->onQueue('high')->execute($order);
第五步,需要串联多个 Action 时,用 ActionJob 把它们链起来;写测试时配合 Queue::fake() 和包里提供的 QueueableActionFake 断言,验证 Action 是否被正确派发。
注意事项
- 这个包面向 Laravel 队列生态,不能当作与框架无关的通用任务调度器用,脱离 Laravel 队列就发挥不了作用。
- 异步执行依赖 Laravel 队列驱动和持续运行的队列工作进程,项目本身不替代这些基础设施,上线前要先把驱动和工作进程配好,并处理好失败任务。
- Action 的参数需要能被队列序列化,传实体模型、闭包或不可序列化的对象时要先确认,否则任务入队就会失败。
- README 没有完整列出 PHP、Laravel 和队列驱动的兼容矩阵,接入前务必查看 Composer 约束或源码,确认当前项目版本在支持范围内。
- 重试退避时间和任务中间件是按 Action 配置的,关键业务要先想清楚失败重试策略,不要用默认配置直接上生产。
同类对比
和 Laravel 原生 Job 类相比,Action 类的最大区别是同一份代码两种执行方式:Job 天生就是队列任务,同步执行要另外处理;Action 则同步异步共用一个类,测试断言和链式调用也是配套提供的。项目里 Action 数量不多、流程简单时,原生 Job 完全够用,不必多引一个包。
和直接写在控制器或 Service 类里的同步逻辑相比,Action 把业务逻辑拆成独立、可测试、可复用的单元,适合逻辑较重、会被多处调用的流程;但如果只是简单的一次性操作,抽成 Action 反而多了一层抽象。
和事件监听器相比,Action 更适合有明确输入输出、可重试、可排队的任务型逻辑;事件监听适合解耦的通知型副作用,两者定位不同,可以共存。

关注「软件教程管家」
回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。
本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›
文章推荐
标签推荐
这款软件怎么样?
平均 暂无评分(0 人评)
取链次数:0
评分与投票来自真实访客,从 0 开始累计;觉得有用就点一下,帮更多人判断这款软件值不值得下。






