Thinkphp文件锁处理高并发
来源:互联网 发布:无线路由器破解软件 编辑:程序博客网 时间:2024/06/08 17:27
namespace app\index\controller;
use think\Controller;
use think\Cache;
class Index extends Controller
{
/**
* 首页
* */
public function index(){
$fp = fopen("lock.txt", "w+");
if(flock($fp,LOCK_EX)) //锁定当前指针,,,
{
//..处理订单
$stock = $this->findStock();
if($stock > 0){
$this->setDec();
}else{
return '抢购失败';
}
return $stock;
flock($fp,LOCK_UN);
}
fclose($fp);
}
/**
* 查询数据库库存
* */
public function findStock(){
$res = db('info')->where('id',1)->field('stock')->lock(true)->find();
return $res['stock'];
}
/**
* 减少库存操作
* */
public function setDec(){
$res = db('info')->where('id',1)->setDec('stock',1);
return $res;
}
}
use think\Controller;
use think\Cache;
class Index extends Controller
{
/**
* 首页
* */
public function index(){
$fp = fopen("lock.txt", "w+");
if(flock($fp,LOCK_EX)) //锁定当前指针,,,
{
//..处理订单
$stock = $this->findStock();
if($stock > 0){
$this->setDec();
}else{
return '抢购失败';
}
return $stock;
flock($fp,LOCK_UN);
}
fclose($fp);
}
/**
* 查询数据库库存
* */
public function findStock(){
$res = db('info')->where('id',1)->field('stock')->lock(true)->find();
return $res['stock'];
}
/**
* 减少库存操作
* */
public function setDec(){
$res = db('info')->where('id',1)->setDec('stock',1);
return $res;
}
}
阅读全文
1 0
- Thinkphp文件锁处理高并发
- 浅谈thinkPHP中利用缓存处理高并发的思路
- 高并发处理
- 高并发处理方案
- 高并发处理方案
- 高并发处理方案
- 高并发处理方案
- java高并发处理
- 高并发处理方案
- 处理高并发
- 高并发处理方案
- JAVA_WEB 高并发处理
- 高并发处理方案
- 高并发处理方案
- 高并发处理方案
- 高并发服务器处理
- mysql处理高并发
- 高并发处理方案
- 《中华人民共和国网络安全法》今起正式实施
- sigemptyset、sigaddset、sigprocmask的用法
- css问题汇集
- Android Studio 百度地图 230错误 Scode码校验失败
- ajax整理
- Thinkphp文件锁处理高并发
- 51nod 1799 二分答案 (打表)
- Linux基础-9(crond)
- Kotlin 标准库扩展函数
- 决策树算法总结
- 元字符与转义(正则基本知识abc)
- 消息邮箱和消息队列
- 软件工程工作必备
- [二]Spring Boot 热部署