-
php ignore_user_abort()函数之计划任务实现方法
php ignore_user_abort
函数说明(PHP 4中,PHP 5中)
ignore_user_abort 设置与客户机断开是否会终止脚本的执行.
本函数返回 user-abort 设置的之前的值(一个布尔值).
函数定义
int ignore_user_abort ([ string $value ] )
参数 描述
setting 可选.如果设置为 true,则忽略与用户的断开,如果设置为 false,会导致脚本停止运行.
如果未设置该参数,会返回当前的设置.
提示注释
注释:PHP 不会检测到用户是否已断开连接,直到尝试向客户机发送信息为止.简单地使用 echo 语句无法确保信息发送,参阅 flush() 函数.
实例说明
例-1 一个的ignore_user_abort()的例子,配合set_time_limit()函数 和一个死循环就可以实现计划任务功能.
- <?php
- // Ignore user aborts and allow the script
- // to run forever
- ignore_user_abort (true);
- set_time_limit (0);
- echo 'Testing connection handling in PHP' ;
- // Run a pointless loop that sometime
- // hopefully will make us click away from
- // page or click the "Stop" button.
- while(1)
- {
- // Did the connection fail?
- if( connection_status () != CONNECTION_NORMAL )
- {
- break;
- }
- // Sleep for 10 seconds
- sleep (10);
- }
- // If this is reached, then the 'break'
- // was triggered from inside the while loop
- // So here we can log, or perform any other tasks
- // we need without actually being dependent on the
- // browser.
- ?>
实例 1、
关闭浏览器后,程序能继续在后台跑,这种情况下需要用到ignore_user_abort()函数;
- ignore_user_abort(true); //设置客户端断开连接时是否中断脚本的执行
- set_time_limit(0);
- $file = '/tmp/ignore_user.txt';
- if(!file_exists($file)) {
- file_put_contents($file);
- }
- if(!$handle = fopen($file,'a+b')){
- echo "not open file :".$file;
- exit;
- }
- $i=0;
- while($i<100) {
- $time = date("Y-m-d H:i:s",time());
- echo $time."\n";
- if(fwrite($handle,$time."\n")===false) {
- echo "not write file:".$file;
- exit;
- }
- echo "write file time:".$time."\n";
- $i++;
- sleep(2);
- }
- fclose($handle);
加上这段代码,即使你把浏览器关闭后还是能还执行php计划任务哦.
出处:http://www.phpfensi.com/php/20140324/2482.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式