标签归档:并发

PHP使用数据库的并发问题

在并行系统中并发问题永远不可忽视。尽管PHP语言原生没有提供多线程机制,那并不意味着所有的操作都是线程安全的。尤其是在操作诸如订单、支付等业务系统中,更需要注意操作数据库的并发问题。

接下来我通过一个案例分析一下PHP操作数据库时并发问题的处理问题。

首先,我们有这样一张数据表:

继续阅读

并发访问、事务安全,蛋疼的Bug

上线的系统出了个Bug,数据库出现了脏数据,做了一半的事务居然提交了,觉得有点不可思议。但是不可思议的事情居然还大量发生了。

检查相关功能,Bug功能出现在一个自己实现的cron机制触发的定时任务中。由于PHP没有常驻系统的机制,因此计划任务或者定时任务这种东西只能依靠流量驱动,或者利用Linux系统的CRON服务。为了不增加运维人员的维护压力,就选择了前者,使用流量来驱动定时任务检查和触发。

结果,悲剧鸟。 继续阅读