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

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
csm668
最佳答案

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

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

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

5年前 评论
csm668

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

5年前 评论
lufeijun1234

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

5年前 评论

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