本篇文章的主要内容是用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实现异步请求、忽略返回值相关推荐

  1. 调用别的方法的返回值_Spring boot如何实现异步调用

    Spring boot如何实现异步调用 异步调用:一个可以无需等待被调用函数的返回值就让操作继续进行的方法 举个例子 异步调用就是你 喊 你朋友吃饭 ,你朋友说知道了 ,待会忙完去找你 ,你就去做别的 ...

  2. return两个返回值_异步函数的两个视角

    我们来一起看一下两个程序员之间的故事. 以下示例代码是用Scala写的,不过本文所讲的话题并不仅限于Scala,任何有Future/Promise支持的语言都是适用的. 下面这个wiki页面罗列了各个 ...

  3. delphi 异步 调用 带参数_Dubbo 关于同步/异步调用的几种方式

    我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用 异步调用 参数回调 事件通知 同步调用 同 ...

  4. python异步封装_python中用协程(异步)实现map函数,爬虫也可以封装进去,

    1.python中得函数map(),通过加延时发现,是单线程执行,有阻塞,实现如下: import time def A(a): time.sleep(0.5) c = a + 11 return c ...

  5. python同步异步_python中Tornado的同步与异步I/O的介绍(附示例)

    本篇文章给大家带来的内容是关于python中Tornado的同步与异步I/O的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 协程是Tornado种推荐的编程方式,使用 ...

  6. c++ 异步下获取线程执行结果_异步编排(CompletableFuture异步调用)

    1.问题背景 问题:当查询接口较复杂时候,数据的获取都需要远程调用,必然需要花费更多的时间. 假如查询文章详情页面,需要如下标注的时间才能完成: 那么,用户需要4s后才能统计的数据.很显然是不能接受的 ...

  7. 异步同步、阻塞非阻塞、异步回调、线程队列和协程

    今天学习了异步同步.阻塞非阻塞.异步回调.线程队列和协程 一.异步同步和阻塞非阻塞 线程的三种状态: 1.就绪 2.运行 3.阻塞 阻塞:遇到了IO操作  代码卡住  无法执行下一行  CPU会切换到 ...

  8. php协程实现mysql异步_swoole与php协程实现异步非阻塞IO开发

    "协程可以在遇到阻塞的时候中断主动让渡资源,调度程序选择其他的协程运行.从而实现非阻塞IO" 然而php是不支持原生协程的,遇到阻塞时如不交由异步进程来执行是没有任何意义的,代码还 ...

  9. async js 返回值_JS异步编程 | Async / Await / Generator 实现原理解析

    async/await实现 在多个回调依赖的场景中,尽管Promise通过链式调用取代了回调嵌套,但过多的链式调用可读性仍然不佳,流程控制也不方便,ES7 提出的async 函数,终于让 JS 对于异 ...

最新文章

  1. RegExp 正则
  2. 从1400篇机器学习文章中精选出Top 10,帮你找找上班的感觉!
  3. encache学习教程
  4. LeetCode Flatten Nested List Iterator
  5. Spring Boot2.0 JPA 实现分页(简单查询分页、复杂查询分页)
  6. POJ2084 Game of Connections(数学,dp)
  7. C++手写a除以b的正余数
  8. 地图 c-suite_C-Suite的模型
  9. Citrix XenServer 6.5 发布
  10. 【SpringMVC笔记】Ajax 入门(jQuery.ajax)
  11. 四、CLR执行程序集中代码和IL代码简介
  12. Bootstrap学习之三:使用排版
  13. java proguard 反混淆_JAVA之代码混淆proguard
  14. 简单编程(五)编程验证一下“角谷猜想”
  15. PDP激活请求,创建请求,删除请求
  16. android: 禁止多点触控
  17. unison实现文件双向同步
  18. iOS 第三方登录之 微信登录
  19. 【基础算法Ⅰ】算法入门篇
  20. Clipboard.js 实现点击复制

热门文章

  1. python实践系列之(一)安装 python/pip/numpy/matplotlib
  2. centos 编译mysql5.6_centos下编译安装MySQL5.6
  3. haproxy配置代理tomcat和nginx_你真的掌握LVS、Nginx及HAProxy工作原理吗?
  4. php调用image类提示不存在的字体,php – 无效的字体文件名(imagettfbox)
  5. 机器学习从入门到精通50讲(四)-实时数仓应用实践案例
  6. q版地图制作软件_Flash动画的图形元件实例-Q版人物侧面行走
  7. java 语音匹配,java-语音识别,是否可以通过正则表达式确定用户所说的内容?
  8. php 避免xss_PHP防止XSS注入
  9. 前端使用正则表达式从接口地址栏取值并将对应的值展示在页面上
  10. 普通 项目打包包含第三方jar包