控制并发

  1. select for update 原子性来限制, memcache add 原子性

  2. 敏感资源,记录日志,不要回滚。尽量用日志记录

使用SQL update的原子性进行并发控制:

$result = RedPackLog::model()->updateAll(
  array('version'=>1),
  'id=88 and version=:t_v',
  array(':t_v'=>0)
);
if($result){
  $command = exec('echo 123 >> /var/www/123.txt');
}

使用memcache add的原子性加锁

if(Yii::app()->memcache->add($key, 1, 60)) {
  // TODO
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容