博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php如何定时执行任务
阅读量:4634 次
发布时间:2019-06-09

本文共 1181 字,大约阅读时间需要 3 分钟。

PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法,下面就让我们来看看吧。PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法:Linux下crontab, windows下计划任务找个被频繁调用的网页, 里面加上一个检测代码set_time_limit(0);ignore_user_abort(true);死循环第一个方法是最常见的, 如果php服务器上没有权限去crontab, 也可以找一个自己的机器定期crontab去请求服务器第二种方法, 论坛上定时清理新帖基本上就是这么实现的, 如果人气不旺的话, 可以考虑去别的火爆点的论坛里面发个图片, 调用自己的php来实现一个trigger就好了。 Discuz!是判断在00:00之后,第一个执行者去执行的。第三种比较不靠谱, Apache重启了就得重新访问,  fastcgi倒是会好一点。下面的这段代码,可以在当前文件夹下,生成一个test.txt,并每隔20秒,往里面写入一个时间戳,无论客户端是否关闭浏览器。
d:\php\cli\sendmail.logPause那个D:\php\cli\php.exe是我的PHP安装文件所在目录。Php.exe就是windows PHP命令行模式的程序。好的,我们保存这个文件为mail.bat然后的windows中的计划任务中添加一个任务,让操作系统在某个时间来运行这个批处理文件。2、如果您使用 Unix 系统,您需要在您的 PHP 脚本的最前面加上一行特殊的代码,使得它能够被执行,这样系统就能知道用什么样的程序要运行该脚本。为 Unix 系统增加的第一行代码不会影响该脚本在Windows 下的运行,因此您也可以用该方法编写跨平台的脚本程序。 ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去$interval=60*30;//每隔半小时运行do{//这里是你要执行的代码sleep($interval);//等待5分钟}while(true);

 

转载于:https://www.cnblogs.com/wuheng1991/p/6826606.html

你可能感兴趣的文章
linux下occi操作oracle数据库,中文乱码的问题
查看>>
JS原型与原型链
查看>>
SVG.js 笔记 (一)
查看>>
struts2笔记01-环境搭建
查看>>
appium 控件定位
查看>>
oracle sql 获取本季度所有月份,上季度所有月份
查看>>
VUE的组件DEMO
查看>>
xshell连接Linux、ngix部署
查看>>
XCODE 6.1.1 配置GLFW
查看>>
vue element 关闭当前tab 跳转到上一路由
查看>>
4、面向对象
查看>>
[NOI2005]聪聪与可可(期望dp)
查看>>
POJ 3723
查看>>
解决sql2014的distribution系统库distribution.mdf过大问题
查看>>
Maven的安装
查看>>
angular初步认识一
查看>>
springmvc3.2+spring+hibernate4全注解方式整合(一)
查看>>
Elgg网站迁移指南
查看>>
素数筛法优化
查看>>
【转】常见系统中文字体的英文名
查看>>