当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » PHP  » 网络编程
Jewel_M

PHP定时执行任务的实现

Jewel_M 发布于 2011年04月17日 16时, 92评/52678阅
分享到: 
收藏 +0
2
用到的函数  ignore_user_abort(),set_time_limit(0),sleep($interval)
此代码只要运行一次后关闭浏览器即可。
不知道能程序的性能会不会影响很大!
标签: PHP 定时执行 精华

代码片段(1) [全屏查看所有代码]

1. [代码][PHP]代码     跳至 [1] [全屏预览]

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
	//这里是你要执行的代码	
	sleep($interval);// 等待5分钟
}while(true);


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(92)

  • 1楼:ValueError 发表于 2011-04-17 17:40 回复此评论
    如果是 fastCGI 的,仍然会受制于 fastCGI timeout
  • 2楼:悟庭 发表于 2011-04-17 18:47 回复此评论
    建议不要这么写。。应该利用OS
  • 3楼:jobell 发表于 2011-04-17 19:27 回复此评论
    开启一个新的线程应该还差不多!!
  • 4楼:疯狂的流浪 发表于 2011-04-17 19:39 回复此评论

    引用来自“WaiTing”的评论

    建议不要这么写。。应该利用OS
    为什么?
  • 5楼:pjiaxu.com 发表于 2011-04-17 19:45 回复此评论
    用shell运行不是更好
  • 6楼:ValueError 发表于 2011-04-17 21:43 回复此评论

    引用来自“疯狂的流浪”的评论

    引用来自“WaiTing”的评论

    建议不要这么写。。应该利用OS
    为什么?
    这样启动之后,就无法控制了。除非终止 PHP 宿主
  • 7楼:netexr 发表于 2011-04-17 21:43 回复此评论
    虽然我不做php开发,但是我装过的php程序几乎都是使用cron来实现定时执行php脚本
  • 8楼:疯狂的流浪 发表于 2011-04-17 22:11 回复此评论

    引用来自“无知的 TonySeek”的评论

    引用来自“疯狂的流浪”的评论

    引用来自“WaiTing”的评论

    建议不要这么写。。应该利用OS
    为什么?
    这样启动之后,就无法控制了。除非终止 PHP 宿主
    哦 原来这样
  • 9楼:橙汁儿 发表于 2011-04-18 08:52 回复此评论
    cron
  • 10楼:Jewel_M 发表于 2011-04-18 09:00 回复此评论
    谁有好的方法可以发出来讨论下,这个运行后不能控制是个问题
  • 11楼:Jewel_M 发表于 2011-04-18 09:04 回复此评论
    crontab对于一般的虚拟主机用户是不太现实的吧!
  • 12楼:该用户已被和谐 发表于 2011-04-18 09:04 回复此评论
    我们是做个脚本,之后系统定时任务!
  • 13楼:Jewel_M 发表于 2011-04-18 09:08 回复此评论

    引用来自“该用户已被和谐”的评论

    我们是做个脚本,之后系统定时任务!
    脚本好像在关闭窗口后就停止了吧?
  • 14楼:qycms_cn 发表于 2011-04-18 09:36 回复此评论

    这样做,不是不可以,而是不科学。

    之于是否控制,可以做到的,应借用第三个条件:

    config.php

    <?php
    return 1;
    ?>

    cron.php
    ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
    set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
    $interval=60*30;// 每隔半小时运行
    do{
    $run = include 'config.php';
    if(!$run) die('process abort');
     //这里是你要执行的代码 
     sleep($interval);// 等待5分钟
    }while(true);



    主要改变config.php中return 0就可以实现了控制这个cron,
  • 15楼:Jewel_M 发表于 2011-04-18 09:42 回复此评论

    引用来自“杨金焕”的评论

    这样做,不是不可以,而是不科学。

    之于是否控制,可以做到的,应借用第三个条件:

    config.php

    <?php
    return 1;
    ?>

    cron.php
    ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
    set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
    $interval=60*30;// 每隔半小时运行
    do{
    $run = include 'config.php';
    if(!$run) die('process abort');
     //这里是你要执行的代码 
     sleep($interval);// 等待5分钟
    }while(true);



    主要改变config.php中return 0就可以实现了控制这个cron,
    这种方法控制是很不错!
  • 16楼:Jewel_M 发表于 2011-04-18 09:45 回复此评论
    为什么觉得不科学呢?
  • 17楼:1001 发表于 2011-04-18 10:10 回复此评论

    引用来自“朱宝明”的评论

    为什么觉得不科学呢?
    以前试过一次这个方法,貌似很占系统资源。。。
    Linux的cron比这方便的多。
  • 18楼:Jewel_M 发表于 2011-04-18 10:13 回复此评论

    引用来自“1001”的评论

    引用来自“朱宝明”的评论

    为什么觉得不科学呢?
    以前试过一次这个方法,貌似很占系统资源。。。
    Linux的cron比这方便的多。
    这种方法对于一般的虚拟主机用户不适合啊
  • 19楼:该用户已被和谐 发表于 2011-04-19 15:51 回复此评论

    引用来自“朱宝明”的评论

    引用来自“该用户已被和谐”的评论

    我们是做个脚本,之后系统定时任务!
    脚本好像在关闭窗口后就停止了吧?
    你没有理解!请领会精神!
  • 20楼:悟庭 发表于 2011-04-19 16:40 回复此评论

    引用来自“疯狂的流浪”的评论

    引用来自“无知的 TonySeek”的评论

    引用来自“疯狂的流浪”的评论

    引用来自“WaiTing”的评论

    建议不要这么写。。应该利用OS
    为什么?
    这样启动之后,就无法控制了。除非终止 PHP 宿主
    哦 原来这样
    不光如此哦,一般的PHP脚本,只是运行一下,然后就清理资源,所以没关系,但如果长时间运行,会有一些意想不到的隐患。比如内存管理方面的问题。
开源从代码分享开始 分享代码
Jewel_M的其它代码 全部(6)...