PHPCMS V9 内核多进程文件锁封装类

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
/*
备注:本代码只适用于PHPCMS V9内核,用户执行多进程任务时用文件锁防止并发执行。
PHPCMS V9 专用多用户进程锁(文件锁实现)功能块
功能:用于执行PHP多进程任务时防并发加锁类实现
BY :QQ:383624314
*/
class lock {
	public function __construct() {
		
			$this->timeout = 600;  //10分钟(后台任务最长超过十分钟就会并发)
   }
        
		/*
		程序逻辑实现主体(暂时没写)
		*/
       public function index() {
         
		 /*
		 调用案例代码
		  try {
             //一:执行加锁
			 $this->lock->lock($user_id);

              
			} catch (Exception $e) {
				  $this->lock->Unlock($user_id);
				  echo '进行异常结束';
                  die;
             } 
		 */
		   
      }
       

        //执行加锁
	    public function lock($user_id) {
         
		   //$user_id=$this->user_id;
		   $getcache=getcache($user_id);//读缓存

           if($getcache){//有锁就执行
			   if(time()-$getcache['outtime']>$this->timeout){
				   //超时,则删除掉
				   delcache($user_id);//删除文件锁
			   }else{
				die("please wait for a moment!");
			   }
			}else{//没锁就执行

				//重新创建锁
			   $arr=array();
			   $arr['user_id']=$user_id;    //旺旺名
			   $arr['outtime']=time();//当前时间
			   setcache($user_id,$arr);//存入缓存
 
			}//IF END

         }//function end

       
	   // 解锁 (直接删除文件锁)
       public function Unlock($user_id) {
		     // $user_id=$this->user_id;
			  delcache($user_id);//删除文件锁
	   
	   }//END





}


?>


V9中调用方法
$this->lock = pc_base::load_app_class('lock');//调用分类输出封装类
$this->lock->Unlock($user_id);


PHP异步请求函数
http://blog.csdn.net/zhoushengbin3/article/details/9113949

PHP进程锁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值