知识大全 php定时计划任务的实现方法
Posted 计划
篇首语:春蚕到死丝方尽,人至期颐亦不休。一息尚存须努力,留作青年好范畴。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 php定时计划任务的实现方法相关的知识,希望对你有一定的参考价值。
我在uchome 中 分析到 uchome是这样做的
把所有的计划任务存放到数据库
每次用户进行操作或打开页面的时候都按排序执行一条计划任务 也就是轮番判断 时间到了的 就在用户进程中执行
uchome的计划任务代码在 /source/function_cron php
上面只自己分析uchome代码关于计划任务大概的结果 抛砖引玉 希望谁有好的方法拿出来共享
ignore_user_abort()
我前一段时间彻底研究过计划任务 认为计划任务的思路很多 但最适合Web的还是触发式的 就是类似于DZ和PHPWind的 似乎大多数web应用也都是这么做的 再说几种其他的供参考
为了提供稳定的触发 用crontab+wget或者ab提供定时访问
nohup + php写守护程序
直接用php写个死循环还提供触发 这时需要用缓存或者数据库来协助推出循环 还有必须用sleep或者usleep控制触发频率
crontab+php
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_limit )可以设置程序的运行时间为无限制 php默认的运行时间是 秒 通过set_time_limit( )可以让程序无限制的执行下去 在程序执行之前加上ignore_user_abort( )和set_time_limit( )即可以了 最终程序该如何写呢?给大家一个例子
cha138/Article/program/PHP/201311/20894相关参考
JAVA中定时自动完成任务的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JAVA中定时自
Java定时执行任务的三种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
教你快速掌握一个简单的Oracle定时任务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一在PLS
各种ASP.NET定时执行任务解决方案收集 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方法一
PHP中使用协同程序实现合作多任务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP一个比较
PHP中使用协同程序实现合作多任务第1/2页 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PH
为Oracle增加计划任务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 经常在SQLServe
在计划的任务中,决定组织能否“正确地做事”的内容有_____。A、“做什么”B、“何时做”C、“何地做”D、“怎么做”答案:BCD解析:在计划工作的任务中,“做什么”“为什么做”决定了组织能否“做正确
在Web工程中实现任务计划调度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 好多朋友用过Win
ASP.NET内部机制实现计划任务代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNE