设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
ThinkPHP进程计数类Process用法实例详解
返回列表
查看:
1100
|
回复:
0
ThinkPHP进程计数类Process用法实例详解
[复制链接]
阿情
当前离线
积分
7622
2560
主题
2560
帖子
7622
积分
论坛元老
论坛元老, 积分 7622, 距离下一级还需 9992377 积分
论坛元老, 积分 7622, 距离下一级还需 9992377 积分
积分
7622
发消息
电梯直达
楼主
发表于 2018-2-14 05:42:40
|
只看该作者
|
倒序浏览
|
阅读模式
本文实例讲述了ThinkPHP进程计数类Process用法。分享给大家供大家参考。具体如下:
项目中有一个需求:由于某一后台任务比较占带宽,所以要限制进程数。花了点时间,写了类,目前版本功能比较简单。
Process.class.php文件如下:
* @license PHP Version 3.0 {@link http://www.php.net/license/3_0.txt}
*/
class Process
{
const PROCESS_KEY = '~Process';
const PROCESS_MAXNUM = 10;
/**
* start
*
* @static
* @access public
* @return void
*/
static public function start(){
$list = self::__getList();
$name = self::__getName();
if(!isset($list[$name])){
$list[$name] = array('count'=>1, 'lasttime'=>time());
}else{
if((time()-$list[$name]['time']) > 600){
$list[$name]['count'] = 1;
}else{
$list[$name]['count'] += 1;
}
}
self::__setList($list);
}
/**
* destory
*
* @static
* @access public
* @return void
*/
static public function destory(){
$list = self::__getList();
$name = self::__getName();
if(isset($list[$name])){
if($list[$name]['count'] self::getMaxnum());
}
/**
* getLasttime
*
* @static
* @access public
* @return void
*/
static public function getLasttime(){
$list = self::__getList();
$name = self::__getName();
return $list[$name]['lasttime'];
}
/**
* clear
*
* @static
* @access public
* @return void
*/
static public function clear(){
F(self:
ROCESS_KEY, null);
}
/**
* __setList
*
* @param mixed $list
* @static
* @access private
* @return void
*/
static private function __setList($list=null){
if(!is_array($list) || empty($list))
F(self:
ROCESS_KEY, null);
else
F(self:
ROCESS_KEY, $list);
}
/**
* __getList
*
* @static
* @access private
* @return void
*/
static private function __getList(){
$list = F(self:
ROCESS_KEY);
if(!is_array($list)) return array();
else return $list;
}
/**
* __getName
*
* @static
* @access private
* @return void
*/
static private function __getName(){
return (defined('GROUP_NAME') ? GROUP_NAME.'_' : '') . MODULE_NAME . '_' . ACTION_NAME;
}
}
?>
调用方法:
希望本文所述对大家基于ThinkPHP框架的php程序设计有所帮助。
您可能感兴趣的文章:
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
ThinkPHP使用UTFWry地址库进行IP定位实例
ThinkPHP调用百度翻译类实现在线翻译
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
ThinkPHP分组下自定义标签库实例
Thinkphp调用Image类生成缩略图的方法
ThinkPHP文件缓存类代码分享
thinkphp实现无限分类(使用递归)
thinkPHP2.1自定义标签库的导入方法详解
thinkphp跨库操作的简单代码实例
thinkPHP自定义类实现方法详解
thinkPHP引入类的方法详解
thinkPHP简单调用函数与类库的方法
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端