php异步请求$.post,如何用PHP实现异步请求、忽略返回值
本篇文章的主要内容是用PHP实现异步请求、忽略返回值,具有一定的参考价值,有需要的朋友可以看看,希望能对你有帮助。
项目需要,场景如下:
某个条件下需要调用接口发送多个请求执行脚本,但是由于每个请求下的脚本执行时间在半个小时左右,所以 就放弃返回执行结果,只要求能秒发送所以就可以。
代码如下:/** * 发起异步请求,忽略返回值 * @param $url 请求url * @return bool */ function asyncPost($url) { $args = parse_url($url); //对url做下简单处理 $host = $args['host']; //获取上报域名 $path = $args['path'] . '?' . $args['query'];//获取上报地址 $fp = fsockopen($host, 80, $error_code, $error_msg, 1); if (!$fp) { Log::record('获取错误信息:'.$error_code . ' _ ' . $error_msg, Log::INFO, true); Log::save('',LOG_PATH . '_' . date('y_m_d') . '.txt'); return false;// } else { stream_set_blocking($fp, true);//开启了手册上说的非阻塞模式 stream_set_timeout($fp, 1);//设置超时 $header = "GET $path HTTP/1.1\r\n"; //注意 GET/POST请求都行 我们需要自己按照要求拼装Header http协议遵循1.1 $header .= "Host: $host\r\n"; $header .= "Connection: close\r\n\r\n";//长连接关闭 fputs($fp, $header); fclose($fp); } }
例子如下:$url[0] = "http://XXXX/demo.php?a=1&b=2&c=3&d=4&e=5"; $url[1] = "http://XXXX/demo.php?a=1&b=2&c=3&d=4&e=5"; $url[2] = "http://XXXX/demo.php?a=1&b=2&c=3&d=4&e=5"; $url[3] = "http://XXXX/demo.php?a=1&b=2&c=3&d=4&e=5"; $url[4] = "http://XXXX/demo.php?a=1&b=2&c=3&d=4&e=5"; $url[5] = "http://XXXX/demo.php?a=1&b=2&c=3&d=4&e=5"; foreach($url as $k=>$val){ asyncPost($val); }
结果如下:
上述是我多次测试结果,时间范围如上。
相关教程:PHP视频教程
php异步请求$.post,如何用PHP实现异步请求、忽略返回值相关推荐
- 调用别的方法的返回值_Spring boot如何实现异步调用
Spring boot如何实现异步调用 异步调用:一个可以无需等待被调用函数的返回值就让操作继续进行的方法 举个例子 异步调用就是你 喊 你朋友吃饭 ,你朋友说知道了 ,待会忙完去找你 ,你就去做别的 ...
- return两个返回值_异步函数的两个视角
我们来一起看一下两个程序员之间的故事. 以下示例代码是用Scala写的,不过本文所讲的话题并不仅限于Scala,任何有Future/Promise支持的语言都是适用的. 下面这个wiki页面罗列了各个 ...
- delphi 异步 调用 带参数_Dubbo 关于同步/异步调用的几种方式
我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用 异步调用 参数回调 事件通知 同步调用 同 ...
- python异步封装_python中用协程(异步)实现map函数,爬虫也可以封装进去,
1.python中得函数map(),通过加延时发现,是单线程执行,有阻塞,实现如下: import time def A(a): time.sleep(0.5) c = a + 11 return c ...
- python同步异步_python中Tornado的同步与异步I/O的介绍(附示例)
本篇文章给大家带来的内容是关于python中Tornado的同步与异步I/O的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 协程是Tornado种推荐的编程方式,使用 ...
- c++ 异步下获取线程执行结果_异步编排(CompletableFuture异步调用)
1.问题背景 问题:当查询接口较复杂时候,数据的获取都需要远程调用,必然需要花费更多的时间. 假如查询文章详情页面,需要如下标注的时间才能完成: 那么,用户需要4s后才能统计的数据.很显然是不能接受的 ...
- 异步同步、阻塞非阻塞、异步回调、线程队列和协程
今天学习了异步同步.阻塞非阻塞.异步回调.线程队列和协程 一.异步同步和阻塞非阻塞 线程的三种状态: 1.就绪 2.运行 3.阻塞 阻塞:遇到了IO操作 代码卡住 无法执行下一行 CPU会切换到 ...
- php协程实现mysql异步_swoole与php协程实现异步非阻塞IO开发
"协程可以在遇到阻塞的时候中断主动让渡资源,调度程序选择其他的协程运行.从而实现非阻塞IO" 然而php是不支持原生协程的,遇到阻塞时如不交由异步进程来执行是没有任何意义的,代码还 ...
- async js 返回值_JS异步编程 | Async / Await / Generator 实现原理解析
async/await实现 在多个回调依赖的场景中,尽管Promise通过链式调用取代了回调嵌套,但过多的链式调用可读性仍然不佳,流程控制也不方便,ES7 提出的async 函数,终于让 JS 对于异 ...
最新文章
- RegExp 正则
- 从1400篇机器学习文章中精选出Top 10,帮你找找上班的感觉!
- encache学习教程
- LeetCode Flatten Nested List Iterator
- Spring Boot2.0 JPA 实现分页(简单查询分页、复杂查询分页)
- POJ2084 Game of Connections(数学,dp)
- C++手写a除以b的正余数
- 地图 c-suite_C-Suite的模型
- Citrix XenServer 6.5 发布
- 【SpringMVC笔记】Ajax 入门(jQuery.ajax)
- 四、CLR执行程序集中代码和IL代码简介
- Bootstrap学习之三:使用排版
- java proguard 反混淆_JAVA之代码混淆proguard
- 简单编程(五)编程验证一下“角谷猜想”
- PDP激活请求,创建请求,删除请求
- android: 禁止多点触控
- unison实现文件双向同步
- iOS 第三方登录之 微信登录
- 【基础算法Ⅰ】算法入门篇
- Clipboard.js 实现点击复制
热门文章
- python实践系列之(一)安装 python/pip/numpy/matplotlib
- centos 编译mysql5.6_centos下编译安装MySQL5.6
- haproxy配置代理tomcat和nginx_你真的掌握LVS、Nginx及HAProxy工作原理吗?
- php调用image类提示不存在的字体,php – 无效的字体文件名(imagettfbox)
- 机器学习从入门到精通50讲(四)-实时数仓应用实践案例
- q版地图制作软件_Flash动画的图形元件实例-Q版人物侧面行走
- java 语音匹配,java-语音识别,是否可以通过正则表达式确定用户所说的内容?
- php 避免xss_PHP防止XSS注入
- 前端使用正则表达式从接口地址栏取值并将对应的值展示在页面上
- 普通 项目打包包含第三方jar包