现象:与盛大对接充值出现错误。
充值接口行为:
1.查充值log是否已有相同单号
2.充值
3.插入充值log,log中单号字段是uniq的。
php可能并发进入1,都通过检查,然后两个一起充值成功,最后插入Log失败。
解决:
1.3和2对调,先3后2。
2.也可以用加锁实现,php不支持多线程,所以没有从语言层面支持锁。
http://code.google.com/p/phplock/
这个好像是通过调用操作系统接口实现的。
3.其实也可以通过数据库uniq字段实现。