首页 > 编程知识 正文

执行php任务,php网页触发执行定时任务

时间:2023-12-27 22:27:15 阅读:325764 作者:WJBU

本文目录一览:

php定时执行任务的几个方法

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

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

具体实现

1、windows计划任务

PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本。

2、linux 的脚本实现

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

使用方式 :

复制代码 代码如下:crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

说明 :

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

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

3、PHP实现定时执行计划任务

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

PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)

如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行

如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行

PHP定时执行的代码:

?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);//程序执行时间

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

总结:

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

PHP后台任务运行

在运行前 先要了解一下 什么是文件描述符。

什么是文件描述符?

文件描述符是一个简单的正整数,用以标明每一个被进程所打开的文件和socket。

最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应。

"21 file"和 " file 21"区别?

1.php test.php 21 file :错误输出到终端,标准输出被重定向到文件file。

2.php test.php file 21 :标准输出被重定向到文件file,然后错误输出也重定向到和标准输出一样,所以错误也输出到文件file。

nohup命令可以在用户退出终端后仍然执行程序,

“21 /dev/null”表示不显示标准输出和错误输出,

最后的表示推到后台执行。

如何在Win7下添加任务计划执行php脚本文件

方法/步骤

1

这里先说说winxp下的任务计划设置步骤:

(1).开始;

(2).控制面板;

(3).任务计划;

(4).添加任务计划;

(5).浏览等操作。

2、在win7下,首先点击开始;

3、点击:管理工具;

4、点击:任务计划程序;

5、点击:创建任务;

6、输入任务名称和描述;

7、鼠标点击,操作选项卡;

8、点击:新建;

9、点击浏览,并选择要执行的脚本文件(比如这里演示的是

testPHP.bat内容如下图:

10、php内容如下图:

11、最后点击确定按钮。

12、定时任务成功执行。

Windows中使用计划任务自动执行PHP程序实例

所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的。利用Windows

2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本、程序或文档在最恰当的时候运行,从而满足自己的需要。下面以Windows

2000为例。

具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤:

单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"任务计划"(或者是"设置"→"控制面板"→"任务计划"),启动Windows

2000的任务计划管理程序。

在"任务计划"窗口中双击"添加任务计划"图标,启动系统的"任务计划向导",然后单击"下一步"按钮,在给出的程序列表中选择需要自动运行的应用程序,然后单击"下一步"按钮。

设置适当的任务计划名称并选择自动执行这个任务的时间频率(如每天、每星期、每月、一次性、每次启动计算机时、每次登录时等),然后单击"下一步"按钮。

此时系统将会要求用户对程序运行的具体时间进行设置,如几号、几点钟、哪几个时间段才能运行等,我们只需根据自己的需要加以设置即可。

接下来系统将会要求用户设置适当的用户名及密码(如图5所示),以便系统今后能自动加以运行。

最后,我们只需单击"完成"按钮即可将相应任务添加到Windows

2000的任务计划程序中,此后它就会自动"记住"这个任务,一旦系统时间及相关条件与用户设置的计划相符,它就会自动调用用户所指定的应用程序,十分方

便(每次启动Windows

2000的时候,任务计划程序都会自动启动,并在后台运行,确保用户的计划能够按时执行)。

现在我们来测试一下刚才所建的任务是否成功,鼠标右键单击"php"程序图标(如图6所示),在弹出的菜单里面选择"运行"。一般情况下程序图标只要这样

激活运行就可以正常启动。如果运行失败可查看用户和密码是否设置正确,还有确定"Task

Scheduler"服务是否已启动,本人当初就是为了节省系统资源把它关掉了导致运行失败,害我找了大半天。另外也可从"系统日志"里查看到底是什么原

因造成运行失败的。

好了,讲了这么多任务计划的应用,现在我们切入正题,下面将介绍两个例子:

一、让PHP定时运行

编辑如下代码,并保存为test.php:

复制代码

代码如下:

?php

$fp

=

@fopen("test.txt",

"a+");

fwrite($fp,

date("Y-m-d

H:i:s")

.

"

让PHP定时运行吧!n");

fclose($fp);

?

php定时执行任务怎么写?

借助crontab来编写;

编写定时执行脚本(单独的一个php文件,或者某个方法);

配置crontab,指定执行路径地址;

启动crontab服务即可。

如何实现php定时执行任务,且时间是可配置的

linux下可以 crontab执行如(crontab -e编辑,crontab -l查看)0 1 * * * php test.php #每天01:00执行一次test.php*/5 * * * * php test.php #每5分钟执行一次test.phpphp自身实现:可sleep实现

?php

function func()

{

//实现要做的事

}

while(true)

{

sleep($n);//$n为秒数

func();

}

?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。