谈下 PHP Larvel框架责任链的一些问题

PHP有个很nice的框架:Larvel

这个框架很重,自带功能很多,处理业务能力也不错,但是用的时间长了会发现一个问题:插入数据库有时候会插入失败

如何造成这个问题呢? 一定是并发写入数据库的频率够高

有的人用责任链写代码很舒服,长久以往就会重度依赖责任链,什么是责任链呢? 大家可以自行百度

Larvel里面的责任链说白了就是一个事务,责任链每一步操作就可以回退,在事务里面会进行很多逻辑、业务等的处理,那么问题就来了,在责任链的一开始就进行事务 锁表操作,粒度很大,如果你此时要处理的逻辑很多的话,那么在并发大的情况下会造成数据无法成功插入。

如何解决:有2点

1. 做异常处理,涉及到队列、缓存,如果发现插入不成功,立刻往缓存里写入,由定时任务或者其他程序进行处理

2. 减少锁的粒度,一些逻辑不要在事务里处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值