正常情况下,PHP都是同步请求,脚本右上而下依次执行,必须等上一步请求好了,才能进行下一步操作,这种效率在某些时候是不必要的,如发送邮件等操作,是可以异步处理的。

  PHP异步也很不少插件,我们使用的是原生的PHP函数,fsockopen(),改函数http请求和socket都可以。

  这个函数官网手册已经给出了示例,我贴出我优化后的代码,使用的是http。

  

public function dealdata(Request $request)
{
$url = 'http://test.com/demo/index/temp';
$param = [
'param1'=>'name',
'param2'=>'value'
];
$this->syncRequest($url, $param);
} public function syncRequest($url, $param=array(),$timeout =10)
{
$urlParmas = parse_url($url);
$host = $urlParmas['host'];
$path = $urlParmas['path'];
$port = isset($urlParmas['port'])? $urlParmas['port'] :80;
$errno = 0;
$errstr = ''; $fp = fsockopen($host, $port, $errno, $errstr, $timeout);
// stream_set_blocking($fp,0);
$query = isset($param)? http_build_query($param) : '';
$out = "POST ".$path." HTTP/1.1\r\n";
$out .= "host:".$host."\r\n";
$out .= "content-length:".strlen($query)."\r\n";
$out .= "content-type:application/x-www-form-urlencoded\r\n";
$out .= "connection:close\r\n\r\n";
$out .= $query; fputs($fp, $out);
fclose($fp);
}

最新文章

  1. Sap SE16n 修改表数据
  2. Ext小总结
  3. iOS开发XCODE5 SVN配置 使用办法 (转) 收藏一下
  4. 开园第一篇 - 论移动开发环境 IOS与Android的差异
  5. 11.Android之常用对话框AlertDialog学习
  6. 保护隐私:清除cookie、禁用cookie确保安全【分享给身边的朋友吧】
  7. 获取其他进程中ListBox和ComboBox的内容
  8. [React Native] State and Touch Events -- TextInput, TouchableHighLight
  9. JQuery EasyUi 扩展combox验证
  10. 线程带参数的Udp接收
  11. sql中如何分割字符串
  12. Spring切面编程步骤
  13. (转)Java线程:线程的同步与锁
  14. 【JavaScript函数】
  15. POJ 3182 The Grove [DP(spfa) 射线法]
  16. Java9 接口细谈
  17. AndrewNG Deep learning课程笔记 - RNN
  18. 微信小程序开发——setData的使用技巧
  19. MSDN Windows XP Professional x64 Edition with SP2 +VL简体中文语言包+序列号
  20. 使用Shell脚本删除/清空日志文件

热门文章

  1. 网站开发进阶(八)tomcat异常日志分析及处理
  2. MTK如何烧录IMEI码(俗称串号)
  3. 【43】Activity的几种LaunchMode及使用场景
  4. DB Query Analyzer 6.01 is released, SQL Execute Schedule function can be used
  5. Cocoa练习01:一个简单的Todo list程序
  6. combinations(组合)
  7. Hibernate的二级缓存策略
  8. tomcat6 高并发配置 与优化
  9. Download and Install Apache Zookeeper on Ubuntu
  10. python都能做什么