知识大全 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中定时自动完成任务的实现

JAVA中定时自动完成任务的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA中定时自

知识大全 Java定时执行任务的三种方法

Java定时执行任务的三种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 教你快速掌握一个简单的Oracle定时任务

教你快速掌握一个简单的Oracle定时任务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一在PLS

知识大全 各种ASP.NET定时执行任务解决方案收集

各种ASP.NET定时执行任务解决方案收集  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  方法一

知识大全 PHP中使用协同程序实现合作多任务

PHP中使用协同程序实现合作多任务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PHP一个比较

知识大全 PHP中使用协同程序实现合作多任务第1/2页

PHP中使用协同程序实现合作多任务第1/2页  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PH

知识大全 为Oracle增加计划任务

为Oracle增加计划任务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  经常在SQLServe

在计划的任务中,决定组织能否“正确地做事”的内容有__

在计划的任务中,决定组织能否“正确地做事”的内容有_____。A、“做什么”B、“何时做”C、“何地做”D、“怎么做”答案:BCD解析:在计划工作的任务中,“做什么”“为什么做”决定了组织能否“做正确

知识大全 在Web工程中实现任务计划调度

在Web工程中实现任务计划调度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  好多朋友用过Win

知识大全 ASP.NET内部机制实现计划任务代码

ASP.NET内部机制实现计划任务代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNE