PHP伪异步实现 通过CURL实现PHP异步

介绍一种PHP通过curl实现异步处理的方式,目前应用在我的项目中,使用之前需要安装php_curl扩展

因为curl请求的接口是同一个项目里面的,所以用这种方式比较方便,

  1. curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    将curl超时时间设置为1s
public function asynch($data)
    {
        $url = '';//接受curl请求的地址

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:application/json; charset=utf-8"));

        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));//post方式数据为json格式
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);//设置超时时间为1s

        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }

  1. ignore_user_abort(true);
    在接受请求的方法最前面加上ignore_user_abort(true);表示忽略与用户的断开,继续向下执行,不然过了1s超时时间会停止执行的
        ignore_user_abort(true);
        set_time_limit(0);
        $data = file_get_contents("php://input");//接收json数据

业务场景概述:
在开发微信公众号的时候,因为要接收用户发来的指令,执行一部分业务逻辑然后返回结果给用户,如果同步的方式,由于处理时间不确定且微信服务器在5s之内没有接收到响应,就会提示异常,所以想到利用微信公众平台的客服消息接口,异步通知客户处理结果,最终使用上面的方式,解决了这个问题

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、什么是CURL? cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、...
    伊Summer阅读 5,104评论 0 4
  • 【php中的curl】php中curl的详细解说 转载2014年03月19日 14:38:05 124700 这几...
    雨黎_95c0阅读 7,993评论 0 0
  • 转载自:http://www.cnblogs.com/txw1958/archive/2013/01/19/286...
    php_bruce阅读 6,846评论 1 5
  • cURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议和选项,如HTTP、FTP、TELNET等,能...
    司马东阳阅读 5,303评论 0 6
  • 原文地址:PHPcURL库函数抓取页面内容(转)作者:巴克 cURL是一个利用URL语法规定来传输文件和数据的工具...
    司马东阳阅读 4,921评论 0 3

友情链接更多精彩内容