`

PHP定时执行计划任务

    博客分类:
  • php
 
阅读更多

原文:PHP定时执行计划任务

摘要:PHP不支持多线程,有时候处理问题不是那么爽,今天谈论一下PHP定时执行的方法

PHP定时执行的三种方式实现

1、windows 的计划任务
2、linux的脚本程序
3、让web浏览器定时刷新

 

具体实现

windows计划任务

PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本,具体可以参考:http://www.cnblogs.com/whoknows/articles/2228577.html

linux 的脚本实现

这里主要使用到crontab这个命令,

使用方式 :

crontab   filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

说明 :

crontab 是用来让使用者在固定时间或固定间隔执行程式之用

使用crontab写shell脚本,然后让PHP调用shell,这个是利用linux的特性,应该还不算PHP自身语言的特性

可以参看:http://www.centos.bz/2011/07/php-cron-job-linux-crontab/

PHP实现定时执行计划任务

 

php

使用php让浏览器刷新需要解决几个问题

  1. PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
  2. 如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
  3. 如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行

PHP定时执行的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=5;// 每隔5s运行
 
//方法1--死循环
do{
    echo '测试'.time().'<br/>';
    sleep($interval);// 等待5s   
}while(true);
 
//方法2---sleep 定时执行
    require_once './curlClass.php';//引入文件
     
    $curl = new httpCurl();//实例化
    $stime = $curl->getmicrotime();
    for($i=0;$i<=10;$i++){
         
        echo '测试'.time().'<br/>';
        sleep($interval);// 等待5s
         
    }
    ob_flush();
    flush();
    $etime = $curl->getmicrotime();
    echo '<hr>';
    echo round(($etime-stime),4);//程序执行时间
1
  

测试的时候发现这个效率并不是很高,

QQ截图20111216110444

总结:

个人感觉PHP定时执行任务的效率不是很高,建议关于定时执行任务的工作还是交给shell来做吧,比较那才是王道。

ps:那个死循环的方法好像是恶意攻击网站经常使用的方法

分享到:
评论

相关推荐

    PHP定时执行计划任务的多种方法小结

    本文将总结三种PHP定时执行计划任务的方法,分别是:Windows的计划任务、Linux的脚本程序以及通过Web浏览器定时刷新。 1. **Windows的计划任务** 在Windows环境中,PHP较少作为服务器首选,但依然可以通过创建...

    PHP计划任务、定时执行任务的实现代码

    不知道能程序的性能会不会影响很大! 复制代码 代码如下: ignore_user_abort();... 您可能感兴趣的文章:php定时计划任务的实现方法详解php中定时计划任务的实现原理PHP定时执行计划任务的多种方法小结PHP定时执行

    基于thinkphp5框架的定时执行任务

    本篇文章将深入探讨如何在ThinkPHP5框架中实现定时执行任务,即“基于thinkphp5框架的定时执行任务”。 定时任务在Web应用中扮演着重要的角色,例如数据备份、清理缓存、发送邮件、统计分析等自动化任务,都可以...

    ThinkPHP实现定时执行任务DEMO

    当我们需要实现定时执行任务时,ThinkPHP框架同样提供了便利的支持。下面我们将详细探讨在ThinkPHP中实现定时任务的两种主要方法。 ### 1. 基于Crontab的定时任务 Crontab是Linux系统中用于设置周期性被执行任务的...

    计划任务 定时执行 php

    2.我有一个演示系统,每天都需要清除数据,那么我可以设定每天3天执行,clear.php文件,定时清除数据. 3.高级技巧,为了安全,可在执行页面接受参数,在执行的时候 访问 example.php?pw=PassWord 才执行命令,以保证安全.

    thinkPHP3.2.3定时执行任务

    Cron是Unix/Linux操作系统中的一个调度服务,用于周期性地执行任务。在ThinkPHP3.2.3中,虽然没有内置的Cron服务,但我们可以借助Linux服务器的Cron机制结合PHP脚本来实现定时任务。要创建一个Cron任务,我们需要在...

    taskPHP基于php开发的定时计划任务框架,多进程实现任务的分配和运行

    `taskPHP`是一个专为PHP设计的定时计划任务框架,它允许开发者创建、管理和执行周期性任务,从而实现自动化的工作流程。这个框架的一大亮点是其多进程实现,能够有效地分配和运行任务,提高任务执行效率。 ### 1. ...

    ThinkPHP实现定时执行任务DEMO1_v3.2.1

    本DEMO1_v3.2.1 版本是针对 ThinkPHP 3.2.1 版本的一个实例,主要展示了如何在 ThinkPHP 中实现定时执行任务。 在 PHP 开发中,定时任务通常用于自动化执行某些任务,如数据备份、清理缓存、发送邮件等,而无需人工...

    基于thinkphp框架的定时器(定时执行任务)

    本篇将详细介绍如何在ThinkPHP中设置和使用定时器来定时执行任务。 一、定时任务的概念与作用 定时任务,也称为Cron Job,在服务器环境中常用于定期执行某些脚本或程序,以实现自动化工作流程。ThinkPHP中的定时...

    帝国CMS-EmpireCMS V7.5前台定时执行刷新任务插件

    插件名称:帝国CMS-前台定时执行刷新任务插件 插件作者:帝国CMS官方 插件介绍:帝国CMS的前台定时执行刷新任务插件,以及可自动执行信息的定时上下线操作,可替代需要开着后台才会执行刷新任务。 官方网站:...

    用于window下定时执行php任务的小软件

    在Windows中,我们可以使用内置的“任务计划程序”来创建和管理这些任务。然而,对于PHP脚本,由于Windows系统默认并不支持直接运行PHP文件,所以我们需要借助第三方工具或服务,比如这个小软件,来实现在Windows上...

    thinkphp 5.1 定时任务,Crontab 计划任务-think-cron.zip

    1. 创建定时任务:首先,在你的ThinkPHP项目中创建一个控制器,比如`CronController`,并在此控制器中定义需要定时执行的方法。 2. 配置路由:在`route.php`文件中,为你的定时任务方法设置一条路由规则,以便Cron...

    PHP定时执行任务方法.txt 自动维护

    ### PHP定时执行任务方法 #### 一、Linux服务器下的定时任务实现 在Linux环境下,定时任务的实现主要依赖于`crontab`工具。通过编辑crontab文件,我们可以非常方便地设定各种复杂的定时任务。 ##### 步骤一:编辑...

    服务器定时执行计划任务,定时访问页面(windows/linux)

    - 设置Windows计划任务:通过控制面板中的“任务计划”功能添加新任务,选择刚才创建的批处理文件,并设置计划任务的执行时间和频率。 3. 使用Linux计划任务的方法: - 使用Crontab来设置定时任务:通过运行...

    taskPHP--基于php开发的定时计划任务框架.zip

    taskPHP基于php开发的定时计划任务框架,利用多进程实现任务的分配和运行,利用内存共享实现进程间通信,支持多线程模式需要安装pthreads扩展(可选),支持linux和windows。有较好的伸缩性、扩展性、健壮稳定性而被多家...

    linux下定时执行php脚本

    综上所述,通过 Cron 守护进程,我们可以在 Linux 系统中轻松实现定时执行 PHP 脚本的功能,这对于自动化处理各种任务非常有用。同时,我们也了解了如何解决执行过程中可能遇到的一些常见问题。

    2.FastAdmin在Windows下定时任务的使用.zip

    - 打开`任务计划程序`,点击右侧的`创建基本任务`。 - 输入任务名称和描述,例如`FastAdmin定时任务`,然后点击`下一步`。 - 选择触发任务的频率,如每天、每周、每分钟等,根据你的需求设置,点击`下一步`。 - ...

    PHP定时执行任务的3种方法详解

    本文将详细讲解三种PHP定时执行任务的方法。 1. **Windows计划任务** 在Windows环境中,虽然PHP并不常用作服务器环境,但可以通过创建计划任务来实现定时执行PHP脚本。一般的做法是编写一个批处理(BAT)文件,该...

Global site tag (gtag.js) - Google Analytics