- 浏览: 1092357 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (30)
- Spring (14)
- iBATIS (6)
- Hibernate (13)
- JVM (5)
- JSON (10)
- Ajax (5)
- Flex (1)
- JavaScript (25)
- PowerDesigner (4)
- 项目管理 (7)
- 数据库 (29)
- 生活 (18)
- 软件应用 (21)
- 无线技术 (2)
- Linux (39)
- TOP开发学习 (2)
- JAVA工具小TIPS (2)
- Java通用 (52)
- XML (3)
- 软件测试 (29)
- Maven (10)
- Jquery (1)
- 正则表达式 (3)
- 应用服务器 (15)
- Android (5)
- linux 和windowx 下 tomcat 设置JVM (8)
- 应用服务器 连接池 (4)
- Linux 后台输出中文乱码 (1)
- Hadoop (28)
- python (2)
- Kafka (7)
- Storm (5)
- Elasticsearch (7)
- fddd (1)
最新评论
-
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
分布式消息系统Kafka初步 -
小灯笼:
LoadRunner性能测试实战课程网盘地址:http://p ...
LoadRunner性能测试应用(八) -
成大大的:
Kafka分布式消息系统实 ...
分布式消息系统Kafka初步 -
hulalayaha2:
Loadrunner性能测试视频教程下载学习:http://p ...
LoadRunner性能测试应用(八) -
993042835:
搞好 谢谢
org.hibernate.exception.ConstraintViolationException: could not delete:
php计划任务的实现 (zt)
文章分类:PHP编程
<?php
ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*5; // 每隔5分钟运行
do{
$fp = fopen('test.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // 等待5分钟
}while(true);
?>
php定时计划任务介绍2010-05-06 10:10以前对se特别感兴趣,但是自己又不会java,lucene等搜索引擎开发工具,于是不断挖掘php的功效。
最后发现php也可以做抓取,并且原理很易:直接获取页面源文件,然后通过正则或字符串的参照截取来获取需要的信息。但是性能上不能和搜索引擎的多线程抓取相比。
实现了上一步之后,又思考着,如果抓取可以自动定时获取,那么人工运行可执行页面也就省下来了。
后来也在一些php开源程序中了解到关于"计划任务"的效果:可以定时运行某程序,比如数据库备份,更新缓存,生成静态页面,生成网站地图等。
最近由于项目需要定时更新远程数据库到本地,网上搜了搜,还真找到了。
ignore_user_abort();函数搭配set_time_limit(0);和sleep($interval);即可实现以上自动更新。
先给出一个基本的范式,其中有个人的测试程序:
<?php
ignore_user_abort(); // run script in background
set_time_limit(0); // run script forever
$interval=30; // do every 15 minutes...
do{
$fp = fopen('text3.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // wait 15 minutes
}while(true);
?>
首先运行该程序,然后关闭该页面,程序仍然运行中,test会每隔30秒的填补到text3.txt文件。
实现效果如图:(略)
最后根据php手册简单介绍一些相关的知识:
1.连接处理:
在 PHP 内部,系统维护着连接状态,其状态有三种可能的情况:
0 - NORMAL(正常)
1 - ABORTED(异常退出)
2 - TIMEOUT(超时)
当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。
可以决定脚本是否需要在客户端中断连接时退出。有时候让脚本完整地运行会带来很多方便,即使没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。该处理过程可由 php.ini 的 ignore_user_abort 或由 Apache .conf 设置中对应的"php_value ignore_user_abort"以及 ignore_user_abort() 函数来控制。如果没有告诉 PHP 忽略用户的中断,脚本将会被中断,除非通过 register_shutdown_function() 设置了关闭触发函数。通过该关闭触发函数,当远程用户点击 STOP 按钮后,脚本再次尝试输出数据时,PHP 将会检测到连接已被中断,并调用关闭触发函数。
脚本也有可能被内置的脚本计时器中断。默认的超时限制为 30 秒。这个值可以通过设置 php.ini 的 max_execution_time 或 Apache .conf 设置中对应的"php_value max_execution_time"参数或者 set_time_limit() 函数来更改。当计数器超时的时候,脚本将会类似于以上连接中断的情况退出,先前被注册过的关闭触发函数也将在这时被执行。在该关闭触发函数中,可以通过调用 connection_status() 函数来检查超时是否导致关闭触发函数被调用。如果超时导致了关闭触发函数的调用,该函数将返回 2。
需要注意的一点是 ABORTED 和 TIMEOUT 状态可以同时有效。这在告诉 PHP 忽略用户的退出操作时是可能的。PHP 将仍然注意用户已经中断了连接但脚本仍然在运行的情况。如果到了运行的时间限制,脚本将被退出,设置过的关闭触发函数也将被执行。在这时会发现函数 connection_status() 返回 3。
2.相关函数:
int ignore_user_abort ( [bool setting] )
This function sets whether a client disconnect should cause a script to be aborted. It will return the previous setting and can be called without an argument to not change the current setting and only return the current setting.
int connection_aborted ( void )
Returns TRUE if client disconnected.
int connection_status ( void )
Returns the connection status bitfield.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/webdesman/archive/2009/09/02/4510372.aspx
发表评论
-
打开“添加和删除程序”时报错:0x00310030,该内存不能为"writ
2012-05-09 18:08 929打开“添加和删除程序”时报错:0x00310030,该内存不能 ... -
只要三步就能找回被删除并清空的文件 转的
2011-03-22 09:06 985只要三步就能找回被删除并清空的文件 步骤: 1、单击“开始 ... -
把文件下载到网络服务器上wget
2010-09-21 16:24 984连接到网络服务器 #cd /usr #wget 'h ... -
给你的mp3大换血 【很好听的歌】
2010-08-19 12:53 1122这些歌, 请戴上耳机, 调大音量, 一个人听 ,全世界 都是你 ... -
photoshop 30种PS技术 让你照片美到不行~婚纱照可以省一大笔钱了
2010-08-19 12:52 1927照片名称:调出照片柔和的蓝黄色-简单方法, 1、打 ... -
云计算:程序员重回个人英雄时代
2010-07-16 13:55 848文/ 刘 鹏 曾几何时,那些耳熟能详的程序英雄的名字渐渐地 ... -
如何通过TCPIP端口为系统添加网络打印机(转)
2010-07-09 09:16 4203转自 http://www.xici.net/main.asp ... -
Windows下用cmd命令安装及卸载服务
2010-06-29 11:41 2238第一种方法: 1. 开始 ->运行 ->cm ... -
Loadrunner 8.1 测试利器相关下载及破解方法(精)转
2010-06-22 14:29 3615Loadrunner 8.1 测试利器相关下载及破解方法(精) ... -
在resin.conf中设置最大值 threadmax
2010-04-22 17:39 4785<!--S 头部开始--> 在resin ... -
resin优化经验
2010-04-22 17:34 19122008-02-19 17:03 Resin T ... -
全球免费软件推荐(国外篇)
2010-04-21 14:25 1303本文是最优秀免费软件工具集合,我们划分为16个种类,其中包含了 ... -
myEclipse 6.5 中如何添加TCP/IP monitor
2010-04-15 17:44 2365myEclipse 6.5 中如何添加TCP/IP monit ... -
脑图软件推荐——PersonalBrain(转)
2010-03-14 10:40 2231脑图软件推荐——Persona ... -
别树一帜的思维图软件:PersonalBrain(转)
2010-03-12 22:20 2894别树一帜的思维图软 ... -
在tomcat中设置编码格式
2010-02-23 13:49 4450在tomcat中设置编码格式 <Conn ... -
三条命令让你xp启动如飞
2010-02-11 13:58 861三条命令让你xp启动如飞1、 ... -
你的电脑不再是蜗牛--加速绝招
2010-02-11 13:45 1523你的电脑不再是蜗牛--加速绝招 电脑速度慢 1 ... -
电脑其实很好玩,玩好了其实很无耻
2010-02-11 13:38 801电脑其实很好玩,玩好了其实很无耻 步骤:1、单击“开始 ... -
想让你的迅雷下载速度提高4倍吗?
2010-02-11 13:32 3719想让你的迅雷下载速度提高4倍吗? 1.首先打开迅雷的安 ...
相关推荐
`taskPHP`是一个专为PHP设计的定时计划任务框架,它允许开发者创建、管理和执行周期性任务,从而实现自动化的工作流程。这个框架的一大亮点是其多进程实现,能够有效地分配和运行任务,提高任务执行效率。 ### 1. ...
【PHP计划任务实现】 在PHP开发中,有时我们需要在特定的时间执行某些任务,例如定期备份数据库、发送邮件或更新数据。这就是计划任务的作用,也称为定时任务。在Windows和Linux系统中,我们可以采用不同的方法来...
在 PHP 中,我们可以使用 Crontab 来实现计划任务,例如定时发送内容、执行 PHP 脚本等。下面我们将详细介绍在 Linux 中使用 Crontab 实现 PHP 计划任务的方法。 一、使用 Crontab 执行 PHP 脚本 在 Crontab 中,...
在ThinkPHP5框架中,实现计划任务可以帮助开发者自动化处理后台任务,如数据同步、清理缓存、发送邮件等。 首先,我们需要理解在ThinkPHP5中如何设置计划任务。通常,我们可以利用Linux系统的`crontab`命令或者...
总结,ThinkPHP 5.1的定时任务功能结合Crontab,让开发者能轻松实现后台任务自动化,极大地提升了工作效率。正确配置和使用Crontab,可以确保任务按预期执行,同时保持系统的稳定运行。通过理解和实践上述步骤,你将...
不知道能程序的性能会不会影响很大! 复制代码 代码如下: ignore_user_abort();... 您可能感兴趣的文章:php定时计划任务的实现方法详解php中定时计划任务的实现原理PHP定时执行计划任务的多种方法小结PHP定时执行
taskPHP基于php开发的定时计划任务框架,利用多进程实现任务的分配和运行,利用内存共享实现进程间通信,支持多线程模式需要安装pthreads扩展(可选),支持linux和windows。有较好的伸缩性、扩展性、健壮稳定性而被多家...
在 ThinkPHP 框架中实现定时任务,可以利用计划任务工具(如Linux的Cron Job)配合控制器或命令行接口(CLI)来完成。 1. **创建命令行接口**:在 ThinkPHP 中,我们可以创建一个 CLI 控制器,该控制器专门处理...
本资源摘要信息是关于基于PHP公司主页的开发与应用的毕业论文任务书。该任务书旨在指导学生完成基于PHP公司主页的开发与应用的毕业设计论文。 知识点1:PHP公司主页的开发 PHP公司主页的开发是指使用PHP语言开发...
总的来说,cronManager是一个功能完备且易于使用的PHP定时任务解决方案,它利用多进程和消息队列技术实现了高效的任务调度,同时保持了与传统crontab的良好兼容性。对于PHP开发者来说,这是一款值得信赖的工具,可以...
"php任务发布平台源码"是一个基于PHP的项目,旨在实现一个功能完备的任务发布系统,允许用户发布、接受和管理任务。此平台包含了裂变海报和分销程序,使得任务推广更为高效。 1. **裂变海报**:裂变海报是一种常见...
在PHP中,实现定时任务通常依赖于外部工具如Cron,但这种方案可能不支持秒级别的精度。然而,通过使用像Workerman这样的PHP事件驱动的高性能网络通信框架,我们可以构建一个内部的定时任务系统,从而实现秒级的调度...
### PHP 多任务秒级定时器的实现方法 #### 概述 本文旨在探讨如何使用PHP语言实现一个具有秒级精度的多任务定时器。在实际应用中,定时任务是服务器端开发中不可或缺的一部分,例如定期执行数据同步、发送邮件通知...
当我们需要实现定时执行任务时,ThinkPHP框架同样提供了便利的支持。下面我们将详细探讨在ThinkPHP中实现定时任务的两种主要方法。 ### 1. 基于Crontab的定时任务 Crontab是Linux系统中用于设置周期性被执行任务的...
也就是轮番判断,时间到了的, 就在用户进程中执行.uchome的计划任务代码在 ./source/function_cron.php上面只自己分析uchome代码关于计划任务大概的结果, 抛砖引玉. 希望谁有好的方法拿出来共享.ignore_user_abort()...
在PHP编程中,计划任务(Cron Job)的实现是一个重要的功能,允许开发者安排脚本在特定时间自动执行。在本文中,我们将深入探讨如何利用`ignore_user_abort()`函数来实现一个不受用户中断影响的PHP计划任务。 `...
【PHP任务管理系统源码解析与应用】 PHP任务管理系统是一种基于PHP编程语言开发的软件工具,专为组织和个人提供任务分配、跟踪和管理的功能。这样的系统通常包含用户界面、任务创建、任务分配、进度追踪、时间管理...
"用于window下定时执行php任务的小软件"是一个专门为Windows设计的工具,可以帮助我们方便地设置和管理这些定时任务。这个小软件可能是通过一个可执行文件`auto_request.exe`来实现功能的。 首先,我们需要理解定时...
总的来说,通过正确设置cron服务的计划任务,你可以实现PHP文件的自动化执行,这对于定期数据备份、网站维护或其他需要定时触发的操作非常有用。只需确保理解并正确配置时间格式,就可以根据需求定制属于自己的计划...