laravel 8 ORM 观察者Observer 事务回滚怎么检测。
1. 运行环境
linux mysql8
1). 当前使用的 Laravel 版本?
laravel8.2
2). 当前使用的 php/php-fpm 版本?
php7.4.26
PHP 版本:
2. 问题描述?
我想 通过 Observer 观察者,监控模型操作,来同步 elasticsearch 和 redis
但是现在 事务被回滚 。观察者却执行了。
[//]: <> (代码问题的话,请提供一份最短的,可复现问题的代码。或者相关代码)
DB::beginTransaction();
try {
//批量观察数据
$InventoryGoodsSku = InventoryGoodsSku::where('sku_id','494796')->get();
$InventoryGoodsSku->each(function ($sku) {
$sku->pre_exit_stock = 2;
$sku->save();
});
throw new LogicException('202',"订单已经配货");
DB::commit();
return '777';
} catch (\Exception $exception) {
DB::rollBack();
throw $exception;
}
3. 您期望得到的结果?
请问有更好的方法同步数据嘛?或者 我获取到事务失败的信息,或者 观察者能知道过来的数据没有被提交
推荐文章: