php 异步并行后续--兼容FPM使用的组件

news/2024/11/17 17:22:43/文章来源:https://www.cnblogs.com/lizhaoyao/p/18200081

上次给人推荐了这篇文章,关于PHP异步并行的文章,之后有人评论问这个组件能不能给fpm用,我测试了一下发现不行,于是又找到一个可以给fpm用的http请求组件.

安装很简单,就这样  composer require guzzlehttp/guzzle 进行安装一下.

然后代码示例如下:

我们先建一个文件作为一个长时间耗时的api接口,文件名api.php,代码如下:

<?php
sleep(1);
$act = isset($_GET['act']) ? $_GET['act'] : "";
echo date('Y-m-d H:i:s', time()) . " act: " . $act;
exit;

这里我们让它睡眠1秒钟,然后输出当前时间.

然后建立一个请求的文件 index.php,代码如下:

<?php
include "vendor/autoload.php";
use GuzzleHttp\Client;
use GuzzleHttp\Promise;$start = microtime(true);$client = new Client(['verify' => false]);
$promise = [];
$list = [];
foreach (range(1, 10) as $item) {$url = "http://local.async.com/api.php?act=" . $item;$promise[$item] = $client->postAsync($url, []);
}
$response = Promise\Utils::unwrap($promise);
foreach ($response as $key => $value) {$list[] = (string)($value->getBody());
}$end = microtime(true);
echo (($end - $start) * 1000) . " ms<br/>";
echo "<pre>";
var_dump($list);
echo "</pre>";

这里我们还是让他发起10个请求,然后将结果放入到list数组里面存储,最后看看效果,

我们看到时间上只用了3秒钟左右,然后act的参数都有,说明请求确实到位了,然后这10个元素的请求结果时间并不是按照先后顺序执行的,是并行的,说明确实请求并行了,这样一来,在那种大数据量需要调用接口请求的时候i就派上用场了.

当然了,我这是在nginx+fpm模式下的测试结果,在cli模式下效果一样的.

如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/708630.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSparse: 通过剪枝和稀疏预训练,在不损失精度的情况下减少70%的模型大小,提升三倍速度

这篇论文提出了一种高稀疏性基础大型语言模型(LLMs)的新方法,通过有效的预训练和部署,实现了模型在保持高准确度的同时,显著提升了处理速度。https://avoid.overfit.cn/post/06961c02a12b48a6a3e1436b527fd2b7

从开发到部署,搭建离线私有大模型知识库

背景介绍 最近一段时间搭建了一套完整的私有大模型知识库,目前完整的服务已经完成测试部署上线。基本之前的实践过程,从工程角度整理技术方案以及中间碰到的一些问题,方便后续对这个方向有需求的研发同学们。 为什么做离线私有化部署 在大模型火热起来之后,很多企业都有尝试…

自媒体基础

自媒体:个人或者个人组织进行专业化,持续化的内容创作,并以此为盈利的方式 做自媒体的原因:盈利,个人品牌打造,进行企业品牌宣传 自媒体盈利: 1.平台分成

AJ-Report开源数据大屏存在远程命令执行漏洞

漏洞描述: 该平台可以通过post方式在validationRules参数对应值中进行命令执行,可以获得服务器权限,登陆管理后台接管大屏。如果被不法分子利用,书写反动标语,危害后果十分严重 Fofa: title="AJ-Report"POC: POST /dataSetParam/verification;swagger-ui/ HTTP/…

pde复习 第一章波动方程 第四节 高维波动方程的Cauchy问题

2024-05-18 16:14:50 星期六 知识点梳理 本节讨论的是高维波动方程,主要是计算\(\star\)公式为\(\star\)公式一定要记清,下面给出一些例题,动手计算。 例题 阅读顺序从左到右再下一行。评注:上面的两个例题的所有解法都值得认真看,还有里面的技巧(三角函数的周期性和正交…

[ABC354D]

https://www.luogu.com.cn/problem/AT_abc354_d https://atcoder.jp/contests/abc354/tasks/abc354_d 由图片可知,很显然每个 \(4\times 2\)​ 网格(称为单位网格)都是全等的。 为了方便,将 \(A,B,C,D\) 都增加 \(10^9\),因为 \(10^9\bmod 4=10^9\bmod 2=0\),所以图形没有…

实验二 电子传输系统安全-进展1

上周任务完成情况(代码链接,所写文档等将电子公文传输系统重新调试通过,并运行 小组成员每个人读完《Core.Software.Security.Security.at.the.Source.CN.软件安全.从源头开始》和《The.Security.Development.Lifecycle.CN.软件安全开发生命周期》,并写好相应的读书笔记 熟…

BeautifulSoup库

一、安装BeautifulSoup库 可以现在目前python安装了哪些包安装beautifulsoup二、beautifulsoup官网 https://www.crummy.com/software/BeautifulSoup/bs4/doc/ 三、beautifulsoup的主要解析器 四、beautifulsoup的find函数 查找html的titlefrom bs4 import BeautifulSouphtml=&…

读人工智能时代与人类未来笔记07_人工智能往何处去

读人工智能时代与人类未来笔记07_人工智能往何处去1. 人工智能的限制和管理 1.1. 在前几代人工智能中,人们将社会对现实的某种理解提炼为程序代码,而当下的机器学习人工智能与之不同,它们在很大程度上是靠自己对现实进行建模 1.2. 虽然开发人员可以检…

二分图的最大匹配(匈牙利算法)代码

二分图的最大匹配代码 #include <bits/stdc++.h> using namespace std;const int N = 505, M = 100005; int h[N], e[M], ne[M], idx; int match[N]; bool st[N]; int n1, n2, m;void add(int a, int b) {e[idx] = b; //e[idx]存放的是第idx条边的终点ne[idx] = h[a]; //…

【GUI软件】采集抖音博主的主页视频(可监控对标账号最新作品)

马哥原创:抖音采集软件,采集抖音博主的主页视频数据。目录一、背景介绍1.1 爬取目标1.2 演示视频1.3 软件说明二、代码讲解2.1 爬虫采集模块2.2 软件界面模块2.3 日志模块三、获取采集软件 一、背景介绍 1.1 爬取目标 您好!我是@马哥python说,一名10年程序猿。 我用python开…

VirtualBox虚拟机远程桌面连接设置详解(包含登录密码设置)

VirtualBox虚拟机远程桌面连接设置详解(包含登录密码设置)一、安装VirtualBox虚拟机下载与安装:访问VirtualBox官方网站,根据您的操作系统(如Linux、Windows、Mac等)下载对应版本的VirtualBox安装包。 安装下载的VirtualBox软件。创建虚拟机:打开VirtualBox,点击“新建…