gpt4 book ai didi

php - 在后台运行 PHP 脚本(不打扰用户)?

转载 作者:搜寻专家 更新时间:2023-10-31 21:42:33 28 4
gpt4 key购买 nike

我想在后台运行一个 PHP 脚本来记录访问者信息(在用户页面加载后),这样就不会拖慢用户的速度。

据我所知,有几种方法可以实现这一点,一种是启动 popen 命令,另一种是使用 exec,最后一个 < em>我知道正在使用fsockopen ( source ):

$socket = fsockopen($_SERVER['HTTP_HOST'],80,$errorno,$errorstr,10); 
if($socket) {
$socketdata = “GET /background_script.php HTTP 1.1\r\nHost: “.$_SERVER['HTTP_HOST'].”\r\nConnection: Close\r\n\r\n”;
fwrite($socket,$socketdata);
fclose($socket);
}

我的服务器不允许使用 popenexec,因此我只能使用 fsockopen

这是我可用的最佳方法吗?

感谢您的支持(:

编辑:

我发现的另一种可能的解决方案是将 Connection: close 发送到浏览器以停止在客户端加载,然后 include background_script.

是否推荐此解决方案?

例如:

ob_start();
echo $OUTPUT_DATA;
header("Content-Length: ".ob_get_length());
header('Connection: close');

ob_end_flush();
ob_flush();
flush();

//Do background visitor logging stuff here..

最佳答案

您可以实现排队解决方案来满足您的要求,其工作方式如下:

  1. 用户登录
  2. PHP 用户函数将工作添加到“登录”队列
  3. “永远在线”的 PHP 脚本( worker )从队列中分配工作
  4. 工作在后台完成

这种方法有点高级,因为您必须引入队列管理器和 php 守护进程来处理工作,但完成后效果很好。

我建议阅读 some docs在“Gearman”上,它有 built-in php 用户函数。

关于php - 在后台运行 PHP 脚本(不打扰用户)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957324/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com