墨斋记

Good Luck To You!

定时器php windows任务计划

网上搜索了一番,大致有以下两类:

1:配合使用ignore_user_abort()和set_time_limit(),使脚本脱离浏览器运行。

 

复制代码
1 ignore_user_abort(); // 后台运行  2 set_time_limit(0); // 取消脚本运行时间的超时上限3 $interval=30;// 每隔30S运行,这个间隔时间是可以随着 需要进行修改 4 do{5     //抓取数据6     sleep($interval);7 }while(true);
复制代码

 

非常的小巧精悍,即便浏览器关掉也能运行,可这是一个死循环,重启apache才能终止掉它。

改进:

 

复制代码
1 (); 2 (0); 3 =30;4 6     7     (8 }($flag);   
  
//flag.php
<?php  return 1;?>
复制代码

 

在do的时候引入flag.php文件,将其值赋予$flag,并作为判断循环的条件。

在服务器上测试过每隔一分钟执行一次,没什么问题,开心的把秒数改为一天,任务完成。


2:windows任务计划程序

打开任务计划程序->任务计划程序库->创建任务

 取个名字,该勾选的勾选,来到触发器页面,新建

 比如设置明天开始,每天9:00执行一次

确定,来到操作页面,新建

程序或脚本,选择要执行的bat文件,启始于(可选)填上bat文件所在的目录

这样,基本的设置就完成了!

然而...并没有...重点是bat文件

如果要定时执行某个php文件,bat文件里可以这么写

D:\php\php.exe -q D:\www\test.php

意思就是让php.exe去执行test.php这个文件。

然而...如此这般,我并不能调用框架里的CURD操作来整理我从接口获取的数据,

当然,用PDO链接数据库,再insert也可以,虽然比较麻烦。

不过,其实有更简单的方法。

也是用windows的任务计划程序,

不过不是执行php文件,而是让ie浏览器打开一个URL再关闭ie浏览器

在bat文件里这么写

@echo off 
echo 正在关闭未关闭的IE进程,请稍等...... 
taskkill /f /im iexplore.exe 
echo -------------开始运行指定的网页页面---------- 
::echo.&pause 
start "" "C:\Program Files\Internet Explorer\iexplore.exe" http://xxx/xxxx.php

echo IE打开完成! 
::echo.&pause 
ping 127.0.0.1 -n 2 
taskkill /f /im iexplore.exe



note:

ping 127.0.0.1 -n 2 这是等待时间。

参考文章:

http://blog.csdn.net/woshixuye/article/details/18050769

http://www.cnblogs.com/lcword/p/5634284.html

http://blog.csdn.net/happy_jijiawei/article/details/50813977

http://blog.csdn.net/skygreen_2001/article/details/7974245

https://www.cnblogs.com/huijiangzzy/p/7525351.html

发表评论:

Powered By Z-BlogPHP 1.7.3

冀公网安备13019902000834
冀ICP备18019600号-1
Copyright CC Some Rights Reserved.Contact Email:chengyingbo88@163.com