关于 laravel-transactions-and-consistency
用于保证 Laravel 多步骤数据库写入一致性的技能,涵盖事务边界、提交后事件与任务、幂等重试和行级锁。
主要功能
- 01用事务包装相关写入
- 02在提交后派发事件和任务
- 03确保任务可安全重试
- 04用行锁协调写入
- 05在事务开始前验证不变量
适用场景
- 01原子更新订单及其商品
- 02提交后再执行发票任务
- 03重试任务时避免重复副作用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ noartem/ skills --skill laravel-transactions-and-consistency安装后在 Claude Code 中输入/laravel-transactions-and-consistency确认已加载。
详细介绍
事务与一致性
确保多步更改具有原子性;确保重试安全。
命令
DB::transaction(function () use ($order, $payload) {
$order->update([...]);
$order->items()->createMany($payload['items']);
OrderUpdated::dispatch($order); // or flag for after-commit
});
// Listener queued after commit
class SendInvoice implements ShouldQueue {
public $afterCommit = true;
}
模式
- 使用
DB::transaction包裹写入序列及相关副作用 - 对于事件 / 作业,优先使用
$afterCommit或dispatchAfterCommit() - 确保作业具有幂等性(检查现有状态,使用唯一约束)
- 必要时使用
lockForUpdate()进行行级协调 - 在启动事务前,于边界处验证不变量
评论
支持 Markdown