国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP進程鎖類PHPLock程序代碼

2024-05-04 21:47:45
字體:
來源:轉載
供稿:網友

為了更好的控制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. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 栾城县| 凤城市| 边坝县| 浦县| 恩施市| 金华市| 内黄县| 英山县| 甘德县| 米林县| 桂东县| 舟曲县| 西平县| 隆安县| 湖口县| 新余市| 石屏县| 娄底市| 民丰县| 仁怀市| 松原市| 珠海市| 洛浦县| 新闻| 尉氏县| 资源县| 无棣县| 信阳市| 灵川县| 安阳市| 都江堰市| 民丰县| 界首市| 锡林浩特市| 忻州市| 黔江区| 文化| 珲春市| 南江县| 伊宁县| 常宁市|