php专区

 首页 > php专区 > PHP应用 > 常用功能 > PHP进程锁类PHPLock程序代码 - php高级应用

PHP进程锁类PHPLock程序代码 - php高级应用

分享到:
【字体:
导读:
          为了更好的控制php程序同时操作的一些问题我整理了一个进程锁的类我们可以利用这个进程锁实现程序的控制,程序代码如下:?php +---------------------------------------------- |Usage: +------...

PHP进程锁类PHPLock程序代码

为了更好的控制php程序同时操作的一些问题我整理了一个进程锁的类我们可以利用这个进程锁实现程序的控制,程序代码如下:

  1. //+---------------------------------------------- 
  2. //|    Usage: 
  3. //+---------------------------------------------- 
  4. //|    public function _initialize(){ 
  5. //|        import('@.Util.PHPLock'); 
  6. //| 
  7. //|        if(PHPLock::islocked()){ 
  8. //|            echo "[+] Status: Locked\n"; 
  9. //|            echo "[+] Exit\n"; 
  10. //|            exit(); 
  11. //|        }else{ 
  12. //|            echo "[+] Status: Unlocked\n"; 
  13. //|            echo "[-] Locking Now\n"; 
  14. //|            PHPLock::lock(); 
  15. //|        } 
  16. //|    } 
  17. //| 
  18. //|    function __destruct(){ 
  19. //|        if(true === PHPLock::unlock()){ 
  20. //|            echo "[+] Unlock Success\n"; 
  21. //|        } 
  22. //|    }  
  23. //+---------------------------------------------- 
  24. class PHPLock 
  25.     const PHPLOCK_TIMEOUT = 1200; 
  26.     static private $pid = null; 
  27.      
  28.     static public function lock(){ 
  29.         $key = self::__getKey(); 
  30.         self::$pid = time(); 
  31.         F($key, self::$pid); 
  32.         return true; 
  33.     } 
  34.      
  35.     static public function unlock(){ 
  36.         $key = self::__getKey(); 
  37.         if(self::$pid){ 
  38.             F($key, null); 
  39.             return true; 
  40.         } 
  41.         return
  42.     } 
  43.      
  44.     static public function islocked(){ 
  45.         $key = self::__getKey(); 
  46.         $time = F($key); 
  47.         if(!$time){ 
  48.             return false; 
  49.         }elseif(time() - $time >= self::getTimeout()){ 
  50.             self::unlock(); 
  51.             return false; 
  52.         }else
  53.             return true; 
  54.         } 
  55.     } 
  56.      
  57.     static public function getTimeout(){ 
  58.         $key = str_replace(self::__getKey(), '_Lock''_TIMEOUT'); 
  59.         $expire = C($key) ? C($key) : self::PHPLOCK_TIMEOUT; 
  60.         return $expire
  61.     } 
  62.      
  63.     static private function __getKey(){ 
  64.         return (defined('GROUP_NAME') ? GROUP_NAME.'_' : '') . MODULE_NAME . '_' . ACTION_NAME . '_Lock'
  65.     } 
  66. ?> 
分享到:
php+jquery实现无限级目录遍历展示代码 -...
php+jquery实现无限级目录遍历展示代码 这个例子可以利用php目录遍历出来的目录或文件进行一个树型的展示效果,程序代码,index.php 里面的jquery文件大家可百度下载一个,因为这是用来实现一个效果的: index.php:     body  {font: normal 12px arial, tahoma, helvetica,...
php获取网页请求状态程序代码 - php高级...
php获取网页请求状态程序代码 网页返回状态代码很多站长会去查自己网站状态码是不是200或错误页面是不是404代码了,那么我们使用最多的查看方法就是使用站长工具或ff浏览器来查,但有很多朋友不知道可以自己写一个查看状态代码的功能. 方法一,使用 fsockopen,严重鄙视curl_getinfo,代码如下: ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……