php实现计划任务,php定时任务框架

本文目录一览:

php discuz的定时任务是什么原理怎么实现的?求高手解答

php中定时计划任务的实现原理:

当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。

示例代码:

?php

ignore_user_abort(true);set_time_limit(0);

date_default_timezone_set(‘PRC’); // 切换到中国的时间

$run_time = strtotime(‘+1 day’); // 定时任务第一次执行的时间是明天的这个时候

$interval = 3600*12; // 每12个小时执行一次

if(!file_exists(dirname(__FILE__).’/cron-run’)) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了

do {

if(!file_exists(dirname(__FILE__).’/cron-switch’)) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用

$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒

$loop = isset($loop) $loop ? $loop : $run_time – $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔

$loop = $loop 0 ? $loop : 0;

if(!$loop) break; // 如果循环的间隔为零,则停止

sleep($loop);

// …

// 执行某些代码

// …

@unlink(dirname(__FILE__).’/cron-run’); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务

$loop = $interval;

} while(true);

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

不知道能程序的性能会不会影响很大!

复制代码

代码如下:

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.

set_time_limit(0);//

通过set_time_limit(0)可以让程序无限制的执行下去

$interval=60*30;//

每隔半小时运行

do{

//这里是你要执行的代码

sleep($interval);//

等待5分钟

}while(true);

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);

?

原创文章,作者:LUME,如若转载,请注明出处:https://www.506064.com/n/148444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
LUMELUME
上一篇 2024-11-03 15:16
下一篇 2024-11-03 15:16

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Ojlat:一款快速开发Web应用程序的框架

    Ojlat是一款用于快速开发Web应用程序的框架。它的主要特点是高效、易用、可扩展且功能齐全。通过Ojlat,开发人员可以轻松地构建出高质量的Web应用程序。本文将从多个方面对Oj…

    编程 2025-04-29
  • Zlios——一个多功能的开发框架

    你是否在开发过程中常常遇到同样的问题,需要不断去寻找解决方案?你是否想要一个多功能、易于使用的开发框架来解决这些问题?那么,Zlios就是你需要的框架。 一、简介 Zlios是一个…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • agavi开发框架

    Agavi是一个基于MVC模式的Web应用程序开发框架,以REST和面向资源的设计为核心思想。本文章将从Agavi的概念、优点、使用方法和实例等方面进行详细介绍。 一、概念 Aga…

    编程 2025-04-29
  • Python unittest框架用法介绍

    Python unittest框架是Python自带的一种测试框架,可以用来编写并运行测试用例。在本文中,我们将从以下几个方面详细介绍Python unittest框架的使用方法和…

    编程 2025-04-29
  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、轻量级、可扩展的RPC框架。其广泛被应用于阿里集团内部服务以及阿里云上的服务。该框架通过NIO支持高并发,同时还内置了多种…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Saturn 定时任务用法介绍

    本文将从以下几个方面对Saturn定时任务进行详细的阐述: 一、Saturn 定时任务简介 Saturn是一个分布式任务调度系统,支持在线添加、修改定时任务,支持多种任务类型,如J…

    编程 2025-04-29
  • Django框架:从简介到项目实战

    本文将从Django的介绍,以及如何搭建Django环境开始,逐步深入到Django模型、视图、模板、表单,最后通过一个小型项目实战,进行综合性的应用,让读者获得更深入的学习。 一…

    编程 2025-04-28

发表回复

登录后才能评论