mcpField
L
laravel-transactions-and-consistency

laravel-transactions-and-consistency

github.com/noartem开发1374 次安装2 周前更新
代码仓库

关于 laravel-transactions-and-consistency

用于保证 Laravel 多步骤数据库写入一致性的技能,涵盖事务边界、提交后事件与任务、幂等重试和行级锁。

主要功能

  1. 01用事务包装相关写入
  2. 02在提交后派发事件和任务
  3. 03确保任务可安全重试
  4. 04用行锁协调写入
  5. 05在事务开始前验证不变量

适用场景

  1. 01原子更新订单及其商品
  2. 02提交后再执行发票任务
  3. 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