php守护进程循环,php 模拟守护进程(Daemon)-程序永远在后台运行

这篇博客介绍了如何使用PHP的ignore_user_abort()和set_time_limit(0)函数来确保脚本在用户关闭浏览器后仍然继续执行。示例包括每隔10秒记录时间到文件,以及每5秒输出语句的后台任务,这些任务将持续进行,不受用户交互影响。这展示了PHP在执行长时间运行和后台任务方面的应用。
摘要由CSDN通过智能技术生成

基础示例

下面这个例子,在用户关闭浏览器后,该脚本仍然后在服务器上继续执行:

使用接口:

int ignore_user_abort ( [bool setting] )

方法声明:

这个函数的作用是指示服务器端在远程客户端关闭连接后是否继续执行下面的脚本。

参数说明:

setting:参数是一个可选参数。如设置为True,则表示如果用户停止脚本运行,仍然不影响脚本的运行(即:脚本将持续执行);如果设置为False,则表示当用户停止运行脚本程序时,脚本程序将停止运行。

// 后台运行

ignore_user_abort();

// 取消脚本运行时间的超时上限

set_time_limit(0);

// 执行轮循

do {

// 休眠1分钟

sleep(60);

// 处理具体事情

echo 'Do!';

} while(true);

?>

实现功能1:每10秒记录时间到文件,永不停歇。

// 后台运行

ignore_user_abort();

// 取消脚本运行时间的超时上限

set_time_limit(0);

// 调试日志[开始]

echo 'start.';

// 执行轮循

while(!file_exists('close.txt')) {

// 打开文件

$handle = fopen('test.txt', 'a+');

// 写入日期

fwrite($handle,date("Y-m-d H:i:s") . " 成功了!\n");

// 关闭文件

fclose($handle);

// 休眠10秒钟

sleep(60);

}

// 调试日志[结束]

echo 'end.';

?>

每5秒输出语句,永不停歇。

// 设置输出类型

header("Content-Type: text/plain");

// 取消脚本运行时间的超时上限

set_time_limit(0);

// 定义字符串

$str = "Hello World" . "\n";

// 循环定时执行

while (isset($str)) {

// 输出日志

echo $str;

// 刷新缓冲区

flush();

ob_flush();

// 休眠5秒钟

sleep(5);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值