亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP中使用Memache作為進程鎖的操作類分享

2024-05-04 23:33:34
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP中使用Memache作為進程鎖的操作類分享,本文直接給出類實現代碼以及應用示例,需要的朋友可以參考下

  1. <?php 
  2.  
  3. // 使用Memache 作為進程鎖  
  4.  
  5. class lock_processlock{ 
  6.  
  7.  
  8. // key 的前綴 
  9. protected $sLockKeyPre
  10. // 重試間隔 
  11. protected $iLockRetryInterval
  12. //重試次數  
  13. protected $iLockRetryCount
  14. //鎖的過期時間 
  15. protected $iLockCacheTimeout
  16. // 鎖過期后的回調函數 
  17. protected $onLockTimeoutFunc
  18. // memache 的實例 
  19. protected $oMemcache
  20. // 存儲memcache失敗后重試次數  
  21. protected $iMemcacheRetryCount
  22.  
  23.  
  24.  
  25.  
  26. public function __construct ($onLockTimeoutFunc=NULL) { 
  27. $aLockConfig = get_config('''lock'); 
  28. $this->sLockKeyPre = self::LOCK_KEY_PRE; 
  29. $this->iLockRetryInterval = self::LOCK_RETRY_INTERVAL; 
  30. $this->iLockRetryCount =self::LOCK_RETRY_COUNT; 
  31. $this->iLockCacheTimeout = self::LOCK_CACHE_TIMEOUT; 
  32. $this->iMemcacheRetryCount = self::LOCK_CACHE_TIMEOUT; 
  33. if(!$onLockTimeoutFunc){ 
  34. // 如果加鎖不成功則調用回調函數,如果沒有回調函數,使用本類中所帶的  
  35. $onLockTimeoutFunc ='onLockTimeout' ;  
  36. $this->onLockTimeoutFunc = $onLockTimeoutFunc
  37.  
  38.  
  39. /** 
  40. 連接memcache 服務器  
  41. */ 
  42. public function connect() { 
  43. if (! isset ( $this->oMemcache )) { 
  44. $this->oMemcache = new Memcache (); 
  45. $this->oMemcache->connect ( '127.0.0.1', 11211 ); 
  46. return $this->oMemcache; 
  47.  
  48.  
  49. /* 
  50. 向MeMcache中添加 key 
  51. */ 
  52. public addMemcache($sKey$sValue$iTimeout){ 
  53.  
  54. for($i= 0 ; $i<$this->iMemcacheRetryCount){ 
  55. $bRes = $this->oMemcache->add($sKey$sValue$iTimeout); 
  56. if($bRes){ 
  57. return true ;  
  58. // 如果加鎖不成功,sleep 之后,從新加鎖 
  59. usleep($this->iLockRetryInterval*1000); 
  60.  
  61. return false ;  
  62.  
  63.  
  64.  
  65. /* 
  66. 加鎖  
  67. */ 
  68. public function lock($sLockID){ 
  69.  
  70. $oMemcache = $this->connect(); 
  71. $sKey = $this->sLockKeyPre . $sLockID
  72.  
  73. // 加鎖如果不成功可以多試幾次  
  74.  
  75. for($i = 0 ; $i <$this->iLockRetryCount ; $i++){ 
  76.  
  77. // 這里設置value 的值可以隨便設置  
  78. if($this->addMemcache($sKey,'1',$this->iLockCacheTimeout)){ 
  79. return true ;  
  80.  
  81. // 如果加鎖不成功,sleep 之后,從新加鎖 
  82. usleep($this->iLockRetryInterval*1000); 
  83.  
  84.  
  85. // 若還不成功,則加鎖失敗,調用回調函數,.也就是失敗后需要處理的操作  
  86. if(is_callable($this->onLockTimeoutFunc)){ 
  87. // 調用函數  
  88. call_user_func($this->onLockTimeoutFunc);  
  89.  
  90.  
  91.  
  92. /* 
  93. 解鎖操作  
  94. */ 
  95. public function unlock($sLockID){ 
  96.  
  97. $oMemcache = $this->connect(); 
  98. $sKey = $this->sLockKeyPre . $sLockID
  99. // 刪除key 
  100. return $this->oMemcache->delete($sKey); 
  101.  
  102.  
  103.  
  104. /** 
  105. 如果加鎖不成功,則執行如下操作  
  106. */ 
  107. public function onLockTimeout(){ 
  108.  
  109. echo ("加鎖超時"); 
  110.  
  111.  
  112.  
  113.  
  114. // 應用實例  
  115.  
  116. $oLock = new lock_processlock(); 
  117. $lockResource = "test"
  118. // 加鎖 
  119. $oLock->lock($lockResource); 
  120. // 解鎖 
  121. $oLock->unlock($lockResource); 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品成久久久久三级| 精品一区二区亚洲| 91久久精品国产91久久性色| 日韩精品极品视频| 精品久久久久久久久久| 亚洲伊人久久大香线蕉av| 91福利视频在线观看| 成人黄色生活片| 亚洲视频免费一区| 2019中文字幕在线观看| 亚洲男人天堂视频| 久久天天躁夜夜躁狠狠躁2022| 日韩电影免费观看在线| 91国产在线精品| 欧美超级免费视 在线| 18一19gay欧美视频网站| 日韩在线观看免费av| 欧美日韩一二三四五区| 中文字幕日韩电影| 欧美黑人性猛交| 日本久久91av| 精品福利一区二区| 国产精品久久久久久搜索| 亚洲无线码在线一区观看| 欧美大片欧美激情性色a∨久久| 亚洲伊人久久大香线蕉av| 日韩av123| 国产亚洲欧洲在线| 欧美日韩国产成人在线| 亚洲精品在线观看www| 亚洲三级 欧美三级| 国产精品欧美日韩久久| 亚洲影院高清在线| 亚洲欧美日韩国产成人| 亚洲va久久久噜噜噜久久天堂| 久久久久www| 91精品国产综合久久香蕉922| 黄色一区二区在线观看| 俺去亚洲欧洲欧美日韩| 国产亚洲精品一区二区| 欧洲日韩成人av| 久久久久久网址| 亚洲激情视频在线观看| 久久久91精品国产| 欧美视频免费在线| 最近2019年中文视频免费在线观看| 久久精品99久久香蕉国产色戒| 亚洲91av视频| 日韩色av导航| 欧美成人午夜剧场免费观看| 中文一区二区视频| 日本19禁啪啪免费观看www| 久久av红桃一区二区小说| 亚洲精品美女久久久久| 欧美成年人视频网站| 97国产在线视频| 久久精品国产亚洲| 欧美影院在线播放| 日韩成人中文字幕| 国产国语刺激对白av不卡| 国产精品福利在线观看| 亚洲a中文字幕| 性色av香蕉一区二区| 欧美日韩免费区域视频在线观看| 亚洲**2019国产| 日韩高清电影免费观看完整版| 国产69精品久久久久99| 国模极品一区二区三区| 日日噜噜噜夜夜爽亚洲精品| 欧美资源在线观看| 日韩精品视频在线| 久久久这里只有精品视频| 国产狼人综合免费视频| 亚洲男人天堂久| 亚洲www视频| 久久频这里精品99香蕉| 欧美俄罗斯乱妇| 不卡av在线播放| 欧美在线视频免费观看| 亚洲精品网址在线观看| 亚洲免费精彩视频| 亚洲欧美日韩中文在线制服| 色www亚洲国产张柏芝| 国产精品激情av在线播放| 中文字幕国产日韩| 国产成人啪精品视频免费网| 久久99精品久久久久久青青91| 亚洲一区二区久久久久久久| 久久久久久久国产精品视频| 国内免费精品永久在线视频| 欧美日韩国产中文字幕| 91麻豆国产语对白在线观看| 国产精品久久久久久av下载红粉| 欧洲日韩成人av| 日韩二区三区在线| 欧美亚洲国产精品| 亚洲一区二区三区乱码aⅴ蜜桃女| 26uuu日韩精品一区二区| 色噜噜久久综合伊人一本| 久久99国产精品久久久久久久久| 欧美日韩美女在线| 性金发美女69hd大尺寸| 久久影院免费观看| 亚洲精品国偷自产在线99热| 国产精品三级美女白浆呻吟| 欧美日韩人人澡狠狠躁视频| 一道本无吗dⅴd在线播放一区| 成人免费视频在线观看超级碰| 国产一区二中文字幕在线看| 欧美午夜精品久久久久久人妖| 高跟丝袜一区二区三区| 久久精品国产69国产精品亚洲| 北条麻妃99精品青青久久| 亚洲欧美日韩国产成人| 国模视频一区二区| 深夜福利国产精品| 日韩最新在线视频| 久久中文字幕一区| 色www亚洲国产张柏芝| 国产网站欧美日韩免费精品在线观看| 欧美午夜宅男影院在线观看| 久久久极品av| 日韩中文字幕在线播放| 亚洲精品自拍第一页| 亚洲精品99999| 久久影院资源站| 国产精品欧美一区二区三区奶水| 亚洲综合中文字幕在线观看| 疯狂蹂躏欧美一区二区精品| 国产日韩欧美在线播放| 久久精品中文字幕免费mv| 亚洲天堂免费观看| 国产性猛交xxxx免费看久久| 97在线视频免费| 欧美有码在线视频| 69**夜色精品国产69乱| 亚洲精品资源美女情侣酒店| 国产精品高潮呻吟视频| 久久久久在线观看| 国产精品久久91| 欧美国产日韩一区二区在线观看| 午夜精品福利在线观看| 国产精品999| 日韩精品一区二区三区第95| 中文字幕日韩精品有码视频| 欧美精品在线免费| 中日韩美女免费视频网站在线观看| 啊v视频在线一区二区三区| 国产黑人绿帽在线第一区| 92看片淫黄大片欧美看国产片| 97视频在线观看视频免费视频| 高清日韩电视剧大全免费播放在线观看| 欧美日韩亚洲视频一区| 欧美精品福利在线| 日本精品免费观看| 国产va免费精品高清在线| 国产成人小视频在线观看| 精品无码久久久久久国产| 亚洲天堂成人在线| 久久黄色av网站| 精品欧美激情精品一区| 欧美理论电影在线观看| 日韩在线视频中文字幕| 亚洲女人被黑人巨大进入al|