php计划任务示例详解

面介绍使用Linux中的Crontab来实现的两种方法。关于crontab的使用,可参考文章:Linux计划任务crontab详解

一、在Crontab中使用PHP执行脚本

就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。

 每一小时执行myscript.php如下:

 代码如下 复制代码

#crontab -e
00 * * * * /usr/local/bin/php /home/web/abc.php/usr/local/bin/

php为PHP程序的路径。

 二、在Crontab中使用URL执行脚本

如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。

 下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

 代码如下 复制代码

00 * * * * lynx -dump http://abc.cn/script.php 

下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。

 代码如下 复制代码

*/5 * * * * /usr/bin/curl -o temp.txt http://abc.cn/script.php 

下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。

 代码如下 复制代码

*/10 * * * * /usr/bin/wget -q -O temp.txt http://abc.cn/script.php 

再介绍一下在Windows下php计划任务的实现

 1、新建一个abc.php,内容如下:

 代码如下 复制代码

<?
$fp = fopen("abc.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 成功了!/n");
fclose($fp);
?> 

2、新建abc.bat文件,内容如下:

 代码如下 复制代码

C:/php/php.exe -q D:/web/abc.php 

3、建立WINDOWS计划任务:
开始–>控制面板–>任务计划–>添加任务计划
浏览文件夹选择上面的abc.bat文件
设置时间和密码(登陆WINDOWS的保存即可了。

  4、右键点击计划任务 -> “运行”即可

 再介绍一个使用php程序来实现的计划任务

 这种效率并不高,也不稳定,使用 crontab 才是王道。

 代码如下 复制代码

<?php
ignore_user_abort(); // 关掉浏览器,PHP脚本也可以继续执行
set_time_limit(3000); // 设置程序的执行时间为3000秒
// set_time_limit(0); // 设置程序的执行时间为无限长
$interval = 30; // 每隔30秒运行

do {
    $fp = fopen('abc.txt', 'a'); // 打开 abc.txt
    fwrite($fp, '你好啊,我来自 http://www.111cn.net'); // 往 abc.txt 写入信息
    fclose($fp); // 关闭 abc.txt
    sleep($interval); // 等待30秒
} while (true);
?> 

首先运行该页面,然后关闭该页面,程序仍然运行中,每隔30秒程序会填补信息到abc.txt文件中去。

时间: 2024-11-10 01:02:15

php计划任务示例详解的相关文章

thinkphp路由规则使用示例详解

 这篇文章主要介绍了thinkphp路由规则使用示例详解和伪静态功能实现(apache重写),需要的朋友可以参考下    代码如下: <?php  //thinkphp 路由定义规则   $route = array(   'news/:action/:yeard/:month/:day'=>'news/read?year=:2&month=:3&day=:4',     'news/:action^delete|update|insert/:yeard/:month/:day

jquery移除、绑定、触发元素事件使用示例详解

 这篇文章主要介绍了jquery移除.绑定.触发元素事件使用示例详解,需要的朋友可以参考下  代码如下: unbind(type [,data])     //data是要移除的函数 $('#btn').unbind("click"); //移除click $('#btn').unbind(); //移除所有     对于只需要触发一次的,随后就要立即解除绑定的情况,用one()    代码如下: $('#btn').one("click",function(){.

JavaScript中的ajax功能的概念和示例详解_javascript技巧

AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML). 个人理解:ajax就是无刷新提交,然后得到返回内容. 对应的不使用ajax时的传统网页如果需要更新内容(或用php做处理时),必须重载整个网页页面. 示例: html代码如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>

bat批处理 if 命令示例详解_DOS/BAT

if 命令示例详解 if,正如它E文中的意思,就是"如果"的意思,用来进行条件判断.翻译过来的意思就是:如果符合某一条件,便执行后面的命令. 主要用来判断,1.两个"字符串"是否相等:2.两个数值是大于.小于.等于,然后执行相应的命令. 当然还有特殊用法,如结合errorlevel:if errorlevel 1 echo error 或者结合defined(定义的意思):if defined test (echo It is defined) else echo 

php示例详解Constructor Prototype Pattern 原型模式_php实例

原型模式中主要角色 抽象原型(Prototype)角色:声明一个克隆自己的接口 具体原型(Concrete Prototype)角色:实现一个克隆自己的操作 当一个类大部分都是相同的只有部分是不同的时候,如果需要大量这个类的对象,每次都重复实例化那些相同的部分是开销很大的,而如果clone之前建立对象的那些相同的部分,就可以节约开销. 针对php的一种实现方式就是__construct()和initialize函数分开分别处理这个类的初始化,construct里面放prototype也就是公共的

JavaScript作用域示例详解_javascript技巧

作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域示例详解的介绍,希望能帮助大家更好的学习JavaScript. 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两种. 一.JavaScript中无块级作用域 在Java或C#中存在块级作用域

JavaScript中自带的 reduce()方法使用示例详解_javascript技巧

1.方法说明 , Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,其效果就是: [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4) 2. 使用示例 'use strict'; function string2int(s){ if(!s){ alert('the params empty'); return; } if

C#多线程、跨线程与线程安全的示例详解

C#多线程.跨线程与线程安全的示例详解(三种不同方法)  代码如下 复制代码 using System.Threading; public static class Extensions     {         //控件扩展方法(用于跨线程操作),因为为了线程的安全,防止资源竞争出现死锁或不一致的状态,.NET是不允许进行跨线程访问窗体控件的.         public static void SafeCall(this Control ctrl, Action callback)   

php接口和抽象类使用示例详解

 这篇文章主要介绍了php的接口和抽象类使用示例,并做了详解讲解,需要的朋友可以参考下 一. 抽象类abstract class   1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类.   2 .抽象类不能被直接实例化.抽象类中只定义(或部分实现)子类需要的方法.子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化.   3 .如果子类需要实例化,前提是它实现了抽象类中的所有