用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

PHP进程锁类PHPLock程序代码

时间:2015-01-23  来源:西部数据  作者:西部数据

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

  1. <?php 
  2. //+---------------------------------------------- 
  3. //|    Usage: 
  4. //+---------------------------------------------- 
  5. //|    public function _initialize(){ 
  6. //|        import('@.Util.PHPLock'); 
  7. //| 
  8. //|        if(PHPLock::islocked()){ 
  9. //|            echo "[+] Status: Locked\n"; 
  10. //|            echo "[+] Exit\n"; 
  11. //|            exit(); 
  12. //|        }else{ 
  13. //|            echo "[+] Status: Unlocked\n"; 
  14. //|            echo "[-] Locking Now\n"; 
  15. //|            PHPLock::lock(); 
  16. //|        } 
  17. //|    } 
  18. //| 
  19. //|    function __destruct(){ 
  20. //|        if(true === PHPLock::unlock()){ 
  21. //|            echo "[+] Unlock Success\n"; 
  22. //|        } 
  23. //|    }  
  24. //+---------------------------------------------- 
  25. class PHPLock 
  26.     const PHPLOCK_TIMEOUT = 1200; 
  27.     static private $pid = null; 
  28.      
  29.     static public function lock(){ 
  30.         $key = self::__getKey(); 
  31.         self::$pid = time(); 
  32.         F($key, self::$pid); 
  33.         return true; 
  34.     } 
  35.      
  36.     static public function unlock(){ 
  37.         $key = self::__getKey(); 
  38.         if(self::$pid){ 
  39.             F($key, null); 
  40.             return true; 
  41.         } 
  42.         return
  43.     } 
  44.      
  45.     static public function islocked(){ 
  46.         $key = self::__getKey(); 
  47.         $time = F($key); 
  48.         if(!$time){ 
  49.             return false; 
  50.         }elseif(time() - $time >= self::getTimeout()){ 
  51.             self::unlock(); 
  52.             return false; 
  53.         }else
  54.             return true; 
  55.         } 
  56.     } 
  57.      
  58.     static public function getTimeout(){ 
  59.         $key = str_replace(self::__getKey(), '_Lock''_TIMEOUT'); 
  60.         $expire = C($key) ? C($key) : self::PHPLOCK_TIMEOUT; 
  61.         return $expire
  62.     } 
  63.      
  64.     static private function __getKey(){ 
  65.         return (defined('GROUP_NAME') ? GROUP_NAME.'_' : '') . MODULE_NAME . '_' . ACTION_NAME . '_Lock'
  66.     } 
  67. ?> 
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门