




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
php定时执行任务的几个方法2011-05-11 16:35:12|分类: PHP |标签: |字号大中小订阅 PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法:1. Linux下crontab, windows下计划任务2. 找个被频繁调用的网页, 里面加上一个检测代码3. set_time_limit(0);ignore_user_abort(true);死循环第一个方法是最常见的, 如果php服务器上没有权限去crontab, 也可以找一个自己的机器定期crontab去请求服务器第二种方法, 论坛上定时清理新帖基本上就是这么实现的, 如果人气不旺的话, 可以考虑去别的火爆点的论坛里面发个图片, 调用自己的php来实现一个trigger就好了。 Discuz!是判断在00:00之后,第一个执行者去执行的。第三种比较不靠谱, Apache重启了就得重新访问,fastcgi倒是会好一点。下面的这段代码,可以在当前文件夹下,生成一个test.txt,并每隔20秒,往里面写入一个时间戳,无论客户端是否关闭浏览器。d:phpclisendmail.logPause那个D:phpcliphp.exe是我的PHP安装文件所在目录。Php.exe就是windowsPHP命令行模式的程序。好的,我们保存这个文件为mail.bat然后的windows中的计划任务中添加一个任务,让操作系统在某个时间来运行这个批处理文件。2、如果您使用Unix系统,您需要在您的PHP脚本的最前面加上一行特殊的代码,使得它能够被执行,这样系统就能知道用什么样的程序要运行该脚本。为Unix系统增加的第一行代码不会影响该脚本在Windows下的运行,因此您也可以用该方法编写跨平台的脚本程序。以下是一个简单的PHP命令行程序的范例。四、例子:E:web Timesend.php#!/usr/bin/phpdbQuery($query);$username = sdfsdfdsd;$sex = 先生;$accounts = sdfasdfasdfsad;$password = sdfsadfsdasdasddssfds;$message = $message = addslashes($message);eval_r($message = $message;);$mail = new SendMail(, $mailtemplate0mt_subject, nl2br($message);if ($mail-Send()$feedback = 修改确认信息已发送到您的注册Email,当前登录已被注销。n请注意查收确认信,并取得新的登录密码。;echo $feedback;?写个bat文件。D:phpcliphp.exe E:webmail.php d:phpclisendmail.logPause保存为:timesend.bat放在D:phpcliphp.exe目录下在window中添加计划任务,然后就可以啦!五、说明。1、我发送邮件用的是模板在数据库中存着,还有两个邮件发送类就不提供了,要的话可以联系我。2、在使用requrie_once时要用绝对路径。3、PHP的命令行模式能使得PHP脚本能完全独立于WEB服务器单独运行,所以要是大量发送邮件时就能减轻服务器负担。4、再一次建议大家看看PHP手册第23.章PHP的命令行模式。其实这不是真正的实现邮件自动发送的方法,但是在无桌面应用程序中的方式下,这可能是一个比较好的方式吧!,我想那种真正实现邮件自动发送的系统,在服务器端还是有一个桌面应用程序做支撑的!所以说这种实现邮件的自动发送仅仅是实现程序发送邮件的一种方法! . $mailtemplate0mt_message. ;?phpignore_user_abort(); / 即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.set_time_limit(0); / 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去$interval=20; / 时间间隔 单位 秒$key_file=key.txt;/ 配置文件if (isset($_GETs)if ($_GETs=0)/ 停止工作,但不退出$s=false;echo Function is off;elseif ($_GETs=1)/ 工作$s=true;echo Function is on;elseif ($_GETs=2)/ 退出$s=die;echo Function exited;elsedie(Err 0:stop working 1:working 2:exit);$string = ;write_inc($key_file,$string,true);exit();if(file_exists($key_file)do$mkey = include $key_file;if ($mkey=true)/ 如果工作/工作区间/$showtime=date(Y-m-d H:i:s);$fp = fopen(func.txt,a);fwrite($fp,$showtime.n);fclose($fp);/elseif ($mkey=die)/ 如果退出die(I am dying!);sleep($interval); / 等待$interval分钟while(true);elsedie($key_file. doesnt exist !);function write_inc($path,$strings,$type=false)$
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度房屋租赁合同(含租赁房屋的法律法规遵守)
- 二零二五年度体育场馆装修委托合同模板
- 2025茶具历史文化研究与应用合同
- 二零二五年度沥青材料研发、生产、销售与培训合同
- 2025餐饮加盟店加盟合同范本
- 2025版网红餐饮品牌门店租赁合作框架协议
- 二零二五年度架工班组承包合同风险预警与处理协议
- 2025版墙纸装修材料供应与施工质量保证合同
- 2025版特色主题婚礼专用礼堂场地租赁合同
- 二零二五版企业品牌策划与营销管理合同
- 文印员考试题库及答案
- 安全总监考试试题及答案
- 2025-2030潜伏性结核感染(LTBI)测试行业市场现状供需分析及投资评估规划分析研究报告
- 县级医院运营管理制度
- XX学校(幼儿园)食堂管理各岗位廉政(廉洁)风险点及防控措施一览表
- 钢结构钢爬梯包工包料合同范本
- 2025届高考数学二轮复习专题21排列组合与概率必刷小题100题教师版
- 家庭房屋财产协议书
- 陶行知生活即教育教师读书分享
- 股东决策协议书模板
- 2025年家畜饲养员及繁殖学职业技能资格知识考试题与答案
评论
0/150
提交评论