gpt4 book ai didi

php - PHP中的并行处理/ fork 以加快检查大型数组

转载 作者:行者123 更新时间:2023-12-03 17:17:48 24 4
gpt4 key购买 nike

我的网站上有一个 php 脚本,旨在很好地概述用户输入的域名。它很好地完成了这项工作,但是速度很慢。这可能与它检查 64 个可能的域名数组的事实有关,然后继续检查名称服务器的 A 记录/MX 记录/NS 记录等。

我想知道的是,是否可以运行多个线程/子进程?这样它会一次检查数组的多个元素,并更快地生成输出?

我已经将我的代码示例放在了一个 pastebin 中(以避免在这里创建一个巨大的垃圾邮件)
http://pastebin.com/Qq9qKtP9

在 perl 我可以做这样的事情:

  $fork = new Parallel::ForkManager($threads);
foreach(Something here){
$fork->start and next;
$fork->finish;
}

我可以根据需要使循环在尽可能多的进程中运行。在 PHP 中是否有类似的可能或您能想到的任何其他方式来加快速度?主要问题是,cloudflare 有一个超时,并且通常需要足够长的时间 CF 阻止响应发生。

谢谢

最佳答案

*没关系支持! *

您永远不想创建线程(或其他进程)来直接响应 Web 请求。

如果您的前端被指示在每次有人点击 page.php 时创建 60 个线程,有 100 人前来请求 page.php一次,您将要求您的硬件同时创建和执行 6000 个线程,更不用说操作系统服务和其他软件使用的线程了。出于显而易见的原因,这不会,也永远不会扩展。

相反,您希望分离出那些需要额外线程或进程的应用程序部分,并通过某种合理的 RPC 与应用程序的这一部分进行通信。这意味着应用程序的后端可以通过 pthread 或 fork 来利用并发,使用固定数量的线程或进程,并在所有可用资源上尽可能均匀地分配工作。这允许流量涌入;它允许您的应用程序扩展。

我不会写示例代码,这似乎太琐碎了。

关于php - PHP中的并行处理/ fork 以加快检查大型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579303/

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