PHP在windows系统中定时任务的实现
来源:互联网 发布:驾驶证考试软件 编辑:程序博客网 时间:2024/04/28 15:48
背景说明:
服务器使用Apache,PHP的运行模式是使用php5apache2.dll模块化的方式,环境中没有php.exe程序来解释PHP文件。
据了解PHP不像JAVA一样,有定时任务在服务器启动的时候去自动运行,但是可以在浏览器运行php文件,问题是只希望该文件在服务器运行,以下三种方案是参考一些资料摸索到的:
方案一:浏览器执行php文件
PHP文件代码如下:
<?php
/**
* $Id: timer.php 2014-11-25 10:27 CharlieChen $
*/
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);//程序无限制的执行下去
$interval=5;// 每隔5秒钟运行
do{
//此处做你想做的事情
//include 'timer/timerService.php';
sleep($interval);
}while(true);
?>
执行方法:把该文件放在url能访问的目录,如http://localhost/timer.php回车执行一下,即可关闭浏览器或转到系统其他地址;
此方法在apache每次重启后需要手动访问一次即可。所以缺陷也在于此。
方案二:BAT执行php程序
PHP代码同方案一,BAT(taskPlane.bat)代码如下:
@echo off
cls
::判断Apache服务器是否启动
for /f "skip=3 tokens=4" %%i in ('sc query Apache) do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="RUNNING" (goto 1)
if /i "%zt%"=="STOPPED" (goto 2)
:1
::隐藏CMD窗口运行
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
cd..
set rootDir=%cd%
cd..
::是Apcahe的bin目录,应包含Apache.exe文件
cd bin
set taskFile=timer.php
if exist "%rootDir%\%taskFile%" (goto exephp) else (echo err)
:exephp
echo %date:~0,10% %time:~0,8% Apache正常运行,推送待办中...
echo 请保留此窗口或最小化运行
php -q "%rootDir%\%taskFile%"
exit
:2
echo %date:~0,10% %time:~0,8% Apache未运行
pause
该脚本首先判断Apache服务是否启动,如果不希望看到CMD的窗口,后台运行,使用代码:
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
::隐藏CMD窗口运行
:begin
::此处代码会被执行
在代码执行处执行php的命令,执行指定路径的php文件。
方案三:BAT执行PHP程序 + Windows计划任务
此时PHP代码只需写需要做的事情,不需要循环执行,把定时执行任务交给Windows如下:
<?php
/**
* $Id: timerService.php 2014-11-26 10:27 CharlieChen $
*/
$basedir = dirname(__FILE__);
$fp = fopen($basedir."/test.txt", "a");
$flag=fwrite($fp,date("Y-m-d H:i:s")."\r\n");
if(!$flag)
{
echo "写入文件失败";
break;
}
fclose($fp);
?>
BAT程序如上文,只是php文件要指定到timerService.php文件
WIN7系统打开“控制面板”-->“管理工具”-->“任务计划程序”-->”创建任务“
1.在“常规“选项卡填写一个名称,配置win7环境隐藏运行
2.在“触发器“选项卡新建触发器,如下我新建一个每隔5分钟就执行一次的计划
3.在“操作“选项卡新建操作,指向BAT程序
此方法把定时交给操作系统来做,php只需执行想做的事就行。
- PHP在windows系统中定时任务的实现
- 在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现
- PHP中实现定时任务
- php定时任务,任务系统
- windows系统的定时任务设置
- PHP实现定时任务
- php定时任务实现
- php实现定时任务
- 在Tomcat中实现定时执行任务
- php定时计划任务的实现原理
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- PHP定时执行任务的实现
- cpluff main
- 限制必须使用微信打开网页
- 《实体解析与信息质量》 - 本书的章节组织形式
- GPS 调试记录
- mysql:利用MRG_MyISAM存储引擎实现分表
- PHP在windows系统中定时任务的实现
- ASP.NET MVC HtmlHelper类的方法总结
- 怎样学习jQuery,jQuery学习教程
- Linux find命令详解
- Android Provider
- ARM X86 区别
- Android屏幕适配方案
- solr4.10.2源码接口-QueryComponent
- linux 常用命令