找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3087|回复: 1

[教程] PHP5计划任务离线功能的原理

[复制链接]
发表于 2013-4-14 09:48:14 | 显示全部楼层 |阅读模式 来自 中国–广东–湛江
  1. 为了定时更新某一文件,需要程序自动运行,从网上搜到了两种方法:ignore_user_abort() 和crontab
  2.    
  3. ignore_user_abort()函数搭配set_time_limit(0)和sleep($interval)即可实现程序自动运行更新,下面是一个实例
  4.    
  5.    
  6. <?php
  7. ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
  8. set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去
  9. $interval=60*5; // 每隔5分钟运行
  10. do{
  11. $fp = fopen('test.txt','a');
  12. fwrite($fp,'test');
  13. fclose($fp);
  14. sleep($interval); // 等待5分钟
  15. }while(true);
  16. ?>
  17.    
  18. 只要运行上面的页面,然后关掉,程序就会一直运行下去。
  19.    
  20.    
  21. Linux 下有种更简单的方法,就是crontab命令
  22.    
  23. crontab命令的功能是在一定的时间间隔调度一些命令的执行。
  24.    
  25. crontab 使用方法: crontab [ -e | -l | -r ] 文件名 -e:编辑任务 -l:显示任务信息 -r:删除定时执行任务信息
  26.   
  27. crontab的格式:
  28. *  *   *  *  *  Command
  29. 分 时 日 月 星期 要运行的命令
  30.    
  31. crontab的例子:
  32.    
  33. */5 * * * *  lynx
  34. 每5分钟访问一次
  35.    
  36. 0 8 * * *  lynx
  37. 每天早上8点访问
  38.    
  39. 0 10 6 * 1-5 lynx
  40. 每个月的6号和每个礼拜的星期一到星期五的早上10点访问
  41.    
  42. 0 5 7 8 * lynx
  43. 8月7日早上5点访问
  44.    
  45. 上面几个特殊的意思:
  46. '*'代表所有的取值范围内的数字,'/'代表每的意思,'*/5'表示每5个单位,'-'代表从某个数字到某个数字,','分开几个离散的数字。
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2013-4-15 10:08:11 | 显示全部楼层 来自 中国–北京–北京
不错,总结的很好,看完了

评分

参与人数 1金币 +5 收起 理由
抢楼评分专号 + 5 很幸运,你获得了抢楼奖励!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-22 10:13 , Processed in 0.041665 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表