php创建锁机制
来源:互联网 发布:松井珠理奈 知乎 编辑:程序博客网 时间:2024/05/22 15:24
<?php
##################创建一个锁机制表############################################
$db->query("create table if not exists pog_table(query_status char(30) not null default '',query_time int unsigned not null default 0,operate_type char(20) not null default '')engine MEMORY charset utf8");
##################创建一个锁机制表############################################
$record="lock";
$temp_data=$db->fetch_array($db->query("SELECT * FROM `pog_table` WHERE `operate_type`='$record'"));
if(is_array($temp_data)&&$temp_data['query_status']=='QUERY_NO'){//如果是个数组,并且状态等于QUERY_NO,可以处理
$query_state=true;
}else if(!is_array($temp_data)){//不是个数组,初始化,包括服务器重启后数据丢失
$start_time=time();
$db->query("INSERT INTO `pog_table` (query_status,operate_type,query_time) VALUES ('QUERY_NO','$record',$start_time)");
$query_state=true;
}
if(is_array($temp_data)&&((time()-$temp_data['query_time'])>60)){//当前时间距离上一次时间超过30,意外情况处理
$start_time=time();
$db->query("UPDATE `pog_table` SET `query_status`='QUERY_NO',`query_time`='$start_time' WHERE operate_type='$record' ");
$query_state=true;
}
if(isset($query_state)&&$query_state==true)//为真,可以处理
{
//改变锁机制表状态
$db->query("UPDATE `pog_table` set query_status='QUERY_ING' WHERE `operate_type`='$record'");
//内部可以写相应的逻辑啦
$start_time=time();
$db->query("UPDATE `pog_table` set query_status='QUERY_NO',query_time=$start_time WHERE `operate_type`='$record'");
echo "QUERY_OK";
}else{
echo "QUERY_WAIT";
}
//有时候,当php发生多线程时,可以自己创建一个类似的锁机制,处理相应的一些逻辑任务。demo如下
##################创建一个锁机制表############################################
$db->query("create table if not exists pog_table(query_status char(30) not null default '',query_time int unsigned not null default 0,operate_type char(20) not null default '')engine MEMORY charset utf8");
##################创建一个锁机制表############################################
$record="lock";
$temp_data=$db->fetch_array($db->query("SELECT * FROM `pog_table` WHERE `operate_type`='$record'"));
if(is_array($temp_data)&&$temp_data['query_status']=='QUERY_NO'){//如果是个数组,并且状态等于QUERY_NO,可以处理
$query_state=true;
}else if(!is_array($temp_data)){//不是个数组,初始化,包括服务器重启后数据丢失
$start_time=time();
$db->query("INSERT INTO `pog_table` (query_status,operate_type,query_time) VALUES ('QUERY_NO','$record',$start_time)");
$query_state=true;
}
if(is_array($temp_data)&&((time()-$temp_data['query_time'])>60)){//当前时间距离上一次时间超过30,意外情况处理
$start_time=time();
$db->query("UPDATE `pog_table` SET `query_status`='QUERY_NO',`query_time`='$start_time' WHERE operate_type='$record' ");
$query_state=true;
}
if(isset($query_state)&&$query_state==true)//为真,可以处理
{
//改变锁机制表状态
$db->query("UPDATE `pog_table` set query_status='QUERY_ING' WHERE `operate_type`='$record'");
//内部可以写相应的逻辑啦
$start_time=time();
$db->query("UPDATE `pog_table` set query_status='QUERY_NO',query_time=$start_time WHERE `operate_type`='$record'");
echo "QUERY_OK";
}else{
echo "QUERY_WAIT";
}
0 0
- php创建锁机制
- MySQL锁机制和PHP锁机制
- MySQL锁机制和PHP锁机制
- php 最简单 子进程创建及分开处理机制
- php网站的锁机制
- PHP和Mysql锁机制
- [李景山php] swoole 锁机制
- 锁机制之PHP文件锁
- 基于memcached的php锁机制实现
- php的锁机制(一)
- 浅谈Selector创建机制
- IMPLEMENT_DYNCREATE 动态创建机制
- 创建JavaScript钩子机制
- 浅谈Selector创建机制
- Linux 创建信任机制
- 字符串的创建机制
- PHP APC实现机制
- PHP autoload机制详解
- Android学习之界面篇(六)ViewPager学习与Android引导界面的实现
- Title Four:Rainy
- 5-7 六度空间 (30分)
- mvc小结
- HDU 5675 ztr loves math——BestCoder Round #82(div.2)
- php创建锁机制
- HTML5 name属性
- io详解
- 用动态规划算法解决0-1背包问题
- 通过ExifInterface 读取图片信息
- 重读《大数据时代》:关于大数据的再认识
- Android四大基本组件介绍与生命周期
- nio详解
- jar包是什么?