易截截图软件、单文件、免安装、纯绿色、仅160KB

php定时计划任务实现方法


我在uchome 中 分析到, uchome是这样做的
   1. 把所有的计划任务存放到数据库
   2. 每次用户进行操作或打开页面的时候都按排序执行一条计划任务. 也就是轮番判断,时间到了的, 就在用户进程中执行.
uchome的计划任务代码在 ./source/function_cron.php
上面只自己分析uchome代码关于计划任务大概的结果, 抛砖引玉. 希望谁有好的方法拿出来共享.
ignore_user_abort()
我前一段时间彻底研究过计划任务,认为计划任务的思路很多,但最适合Web的还是触发式的,就是类似于DZ和PHPWind的,似乎大多数web应用也都是这么做的,再说几种其他的供参考
1,为了提供稳定的触发,用crontab+wget或者ab提供定时访问
2,nohup + php写守护程序
3,直接用php写个死循环还提供触发,这时需要用缓存或者数据库来协助推出循环,还有必须用sleep或者usleep控制触发频率
4,crontab+php
5,web触发方式,这也有区别,一种是定时触发,一种是定周期触发,DZ和PHPWind都是定时触发,我最后采用的是定周期触发
具体的实现思路 很容易想,就不多说了
自己有主机肯定用crontab来执行命令行PHP
没有只能写在代码中了
用crontab会比较好, 如果用循环的话, 最好也要把循环和具体处理程序分开, 不然内存会一直增加.
 
今天一不小心在php手册上发现了这个函数-ignore_user_abort,这个函数可以帮助我们实现像linux中的cron一样实现计划任务,下面一起来看下该如何来实现。
首先看下php手册对这个函数的解释
Description
int ignore_user_abort ([ bool $setting ] )
Sets whether a client disconnect should cause a script to be aborted.
也就是说无论客户端是否关闭浏览器,下面的程序都会执行.
再看下其参数
Parameters
 
setting
If not set, the function will only return the current setting.
这个函数接受一个参数,来决定是否启用ignore_user_abort的功能。
再看其返回值:
Return Values
Returns the previous setting, as a boolean.
这里说返回前一次的设置,并且是bool值得,经过我的测试,这个说法是不对的,返回的明明是int型的,不相信的话大家可以写一个php文件来测试下。
说了这么多了,到底该如何用php的这个函数实现计划任务呢?还跌借助另外一个函数,这个函数是set_time_limit,通过set_time_limit0)可以设置程序的执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可


相关文档:

php大文件的上传

1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc)
APC实现方法:
安装APC,参照官方文档安装,可以使用PECL模块安装方法快速简捷,这里不说明
配置php.ini,设置参数 apc.rfc1867=1 ,使APC支持上传进度条功能,在APC源码说明文档里面有说明
代码范例:
复制PHP内容到剪 ......

PHP5面向对象:Object Cloning

PHP4:
<?
$sample1 = new StdClass();
$sample1->name = "Hasin";
$sample2 = $sample1;
$sample2->name = "Afif";
echo $sample1->name;
?>
In PHP4 it works differently; it will output Hasin, as both are different from 
each other.
PHP5:
<?
$sample1 = new StdClass();
$ ......

PHP程序61条面向对象分析设计的经验原则 (转)

 
你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 。 ----- Arthur J.Riel
 
(1)所有数据都应该隐藏在所在的类的内部。
 
(2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。
 
(3)尽量减少类的协议中的 ......

配置FCK上传(PHP)


要使您的FCKeditor能够使用上传功能,您必须进行以下配制。
注意:FCKeditor不支持虚拟目录,您的路径设置都是针对网站根目录的绝对路径而言的。这点对于发布到远程网站目录的开发者极为不便,后面我们会对此进行讨论。
一、打开fckeditor\editor\filemanager\upload\php\config.php,找到代码$Config['Enabled'],将值 ......

Ewebeditor编辑器嵌入到PHP网页中

/*
>>>  Title    : Ewebeditor编辑器嵌入到PHP网页中
>>> Author: 刘晨晖 
>>> Date   : 2009-07-05
>>> EMAIL :
huichengongzi@gmail.com
>>> 转载请注明出处,谢谢合作!
*/
(1)在
</head>
之前加上下面一段代码:(得 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号