Laravel 的 model 事件如何跟跟 DB 事务结合使用?

需求:观察监听A系统的model操作,然后通过触发注册事件去执行api请求B系统,B系统读取A系统写入的数据。A B 系统使用的是相同库。

流程:A系统事务开启->Model执行created->event触发->推送api B系统->B系统查库获取A写入数据

疑惑:event 是否在事务结束后才触发,保证数据一致性?不改变事务隔离级别情况下,能否让B系统读取A事务未commit的数据?这点暂时想到用队列异步延迟触发的方案了。。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
csm668
最佳答案

:joy:点错了 。测试过不管是created 或 creating 都在 commit前监听到的 我laravel5.7

4年前 评论
讨论数量: 3
CrazyZard

created 插入到数据库后触发 说明commit 已经提交了 才会触发 如果是在 commit之前插入数据 你就要确保 commit 一定会成功,creating 能否满足要求?

4年前 评论
csm668

:joy:点错了 。测试过不管是created 或 creating 都在 commit前监听到的 我laravel5.7

4年前 评论
lufeijun1234

laravel 事件是系统设计实现的,没有考虑 Eloquent 事务,所以还是慎用

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!