麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PHP > 正文

ThinkPHP進(jìn)程計(jì)數(shù)類Process用法實(shí)例詳解

2024-05-04 23:39:13
字體:
供稿:網(wǎng)友

這篇文章主要介紹了ThinkPHP進(jìn)程計(jì)數(shù)類Process用法,以實(shí)例形式較為詳細(xì)的分析了Process類的定義及進(jìn)程計(jì)數(shù)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了ThinkPHP進(jìn)程計(jì)數(shù)類Process用法。分享給大家供大家參考。具體如下:

項(xiàng)目中有一個(gè)需求:由于某一后臺任務(wù)比較占帶寬,所以要限制進(jìn)程數(shù)。花了點(diǎn)時(shí)間,寫了類,目前版本功能比較簡單。

Process.class.php文件如下:

 

 
  1. <?php 
  2. /** 
  3. * Process  
  4.  
  5. * @package  
  6. * @version $id$ 
  7. * @copyright 2005-2011 SUCOP.COM 
  8. * @author Dijia Huang <[email protected] 
  9. * @license PHP Version 3.0 {@link http://www.php.net/license/3_0.txt} 
  10. */ 
  11. class Process 
  12. const PROCESS_KEY = '~Process'
  13. const PROCESS_MAXNUM = 10; 
  14. /** 
  15. * start  
  16.  
  17. * @static 
  18. * @access public 
  19. * @return void 
  20. */ 
  21. static public function start(){ 
  22. $list = self::__getList(); 
  23. $name = self::__getName(); 
  24. if(!isset($list[$name])){ 
  25. $list[$name] = array('count'=>1, 'lasttime'=>time()); 
  26. }else
  27. if((time()-$list[$name]['time']) > 600){ 
  28. $list[$name]['count'] = 1; 
  29. }else
  30. $list[$name]['count'] += 1; 
  31. self::__setList($list); 
  32. /** 
  33. * destory  
  34.  
  35. * @static 
  36. * @access public 
  37. * @return void 
  38. */ 
  39. static public function destory(){ 
  40. $list = self::__getList(); 
  41. $name = self::__getName(); 
  42. if(isset($list[$name])){ 
  43. if($list[$name]['count'] <= 1){ 
  44. unset($list[$name]); 
  45. }else
  46. $list[$name]['count'] -= 1; 
  47. $list[$name]['lasttime'] = time(); 
  48. self::__setList($list); 
  49. /** 
  50. * getCount  
  51.  
  52. * @static 
  53. * @access public 
  54. * @return void 
  55. */ 
  56. static public function getCount(){ 
  57. $list = self::__getList(); 
  58. $name = self::__getName(); 
  59. return $list[$name]['count']; 
  60. /** 
  61. * getMaxnum  
  62.  
  63. * @static 
  64. * @access public 
  65. * @return void 
  66. */ 
  67. static public function getMaxnum(){ 
  68. $name = self::__getName(); 
  69. return C($name) ? C($name) : self::PROCESS_MAXNUM; 
  70. /** 
  71. * getName  
  72.  
  73. * @static 
  74. * @access public 
  75. * @return void 
  76. */ 
  77. static public function getName(){ 
  78. return self::__getName(); 
  79. /** 
  80. * isOvertop  
  81.  
  82. * @static 
  83. * @access public 
  84. * @return void 
  85. */ 
  86. static public function isOvertop(){ 
  87. return (self::getCount() > self::getMaxnum()); 
  88. /** 
  89. * getLasttime  
  90.  
  91. * @static 
  92. * @access public 
  93. * @return void 
  94. */ 
  95. static public function getLasttime(){ 
  96. $list = self::__getList(); 
  97. $name = self::__getName(); 
  98. return $list[$name]['lasttime']; 
  99. /** 
  100. * clear  
  101.  
  102. * @static 
  103. * @access public 
  104. * @return void 
  105. */ 
  106. static public function clear(){ 
  107. F(self::PROCESS_KEY, null); 
  108. /** 
  109. * __setList  
  110.  
  111. * @param mixed $list  
  112. * @static 
  113. * @access private 
  114. * @return void 
  115. */ 
  116. static private function __setList($list=null){ 
  117. if(!is_array($list) || empty($list)) 
  118. F(self::PROCESS_KEY, null); 
  119. else 
  120. F(self::PROCESS_KEY, $list); 
  121. /** 
  122. * __getList  
  123.  
  124. * @static 
  125. * @access private 
  126. * @return void 
  127. */ 
  128. static private function __getList(){ 
  129. $list = F(self::PROCESS_KEY); 
  130. if(!is_array($list)) return array(); 
  131. else return $list; 
  132. /** 
  133. * __getName  
  134.  
  135. * @static 
  136. * @access private 
  137. * @return void 
  138. */ 
  139. static private function __getName(){ 
  140. return (defined('GROUP_NAME') ? GROUP_NAME.'_' : '') . MODULE_NAME . '_' . ACTION_NAME; 
  141. ?> 

調(diào)用方法:

 

 
  1. <?php 
  2. class IndexAction extends Action  
  3. // 初始化模塊 
  4. public function _initialize(){ 
  5. parent::_initialize(); 
  6. import('@.Util.Process'); 
  7. Process::start(); 
  8. function __destruct(){ 
  9. Process :: destory(); 
  10. }  
  11. public function index(){ 
  12. C('Index_index', 3); // 動態(tài)更改限制數(shù), 默認(rèn)為10 
  13. if(Process::isOvertop()) echo "超出限制"
  14. else "未超出限制"
  15. ?> 

希望本文所述對大家基于ThinkPHP框架的php程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人视屏在线观看 | av中文字幕免费在线观看 | 欧美一级黄视频 | 欧美日本国产精品 | 91网站链接 | 视频一区二区三区在线播放 | 成人在线视频免费观看 | 成人福利电影在线观看 | 一级在线观看视频 | 黄色小视频在线免费看 | av电影网站在线观看 | 成人在线视频免费观看 | 欧日一级片 | 中文字幕在线播放不卡 | 亚洲国产高清自拍 | 久久毛片免费观看 | 久久精品免费国产 | 激情九九 | 国产精品一区在线免费观看 | 深夜小视频在线观看 | 国产精品一区视频 | 成人激情视频网站 | 国产精品剧情一区二区三区 | 国产精品视频1区 | 萌白酱福利视频在线网站 | 日本一区二区视频在线观看 | 亚洲成人福利电影 | 久草视频在线资源 | 欧美日韩手机在线观看 | 黄色av片在线观看 | 国产91在线高潮白浆在线观看 | 最新国产毛片 | 免费观看一区二区三区视频 | 欧美精品毛片 | 色综合久久99 | 少妇色诱麻豆色哟哟 | 精品一区二区三区中文字幕 | 最新中文在线视频 | 中文日韩在线视频 | 午夜爽爽爽男女免费观看hd | 综合日韩av |