PHP进程锁类PHPLock程序代码
为了更好的控制php程序同时操作的一些问题我整理了一个进程锁的类我们可以利用这个进程锁实现程序的控制,程序代码如下:
<?php //+---------------------------------------------- //| Usage: //+---------------------------------------------- //| public function _initialize(){ //| import('@.Util.PHPLock'); //| //| if(PHPLock::islocked()){ //| echo "[+] Status: Locked\n"; //| echo "[+] Exit\n"; //| exit(); //| }else{ //| echo "[+] Status: Unlocked\n"; //| echo "[-] Locking Now\n"; //| PHPLock::lock(); //| } //| } //| //| function __destruct(){ //| if(true === PHPLock::unlock()){ //| echo "[+] Unlock Success\n"; //| } //| } //+---------------------------------------------- class PHPLock { const PHPLOCK_TIMEOUT = 1200; static private $pid = null; static public function lock(){ $key = self::__getKey(); self:: $pid = time(); F( $key , self:: $pid ); return true; } static public function unlock(){ $key = self::__getKey(); if (self:: $pid ){ F( $key , null); return true; } return ; } static public function islocked(){ $key = self::__getKey(); $time = F( $key ); if (! $time ){ return false; } elseif (time() - $time >= self::getTimeout()){ self::unlock(); return false; } else { return true; } } static public function getTimeout(){ $key = str_replace (self::__getKey(), '_Lock' , '_TIMEOUT' ); $expire = C( $key ) ? C( $key ) : self::PHPLOCK_TIMEOUT; return $expire ; } static private function __getKey(){ return (defined( 'GROUP_NAME' ) ? GROUP_NAME. '_' : '' ) . MODULE_NAME . '_' . ACTION_NAME . '_Lock' ; } } ?>查看更多关于PHP进程锁类PHPLock程序代码 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29845