美文网首页
php异步调用测试【学习】

php异步调用测试【学习】

作者: 山村老表 | 来源:发表于2017-03-22 11:47 被阅读0次

php异步调用测试

访问的脚本

/**
 * 需求场景 ajax请求之后 需要及时先把结果返回 然后后天自己慢慢处理数据
 * 比如:转盘抽奖,点击之后需要ajax请求并及时返回是否中奖的结果。
 * 而如果在同一个函数或脚本执行的时候正常是等所有程序执行完成之后才会返回结果
 * 而使用curl来触发后续数据处理程序 可以达到异步处理的效果,其实和linux的定时任务类似也是触发脚本运行
 * 设置curl超时时间为1秒 这样就不会等待处理结果了
 */
function asyn($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    curl_close($ch);
    echo "异步调用完成时间:".date("Y-m-d H:i:s", time());
}
asyn('http://localhost/asyn2.php');//异步调用
var_dump('一等奖');//即时返回算出的奖项 以便前台页面处理转盘 指向

异步处理脚本

<?php
function asyn2()
{
    ignore_user_abort(true); // 忽略客户端断开
    set_time_limit(0);    // 设置执行不超时关闭脚本运行时间(或设置需要的时长) 避免超时
    sleep(60);//模拟数据处理时长 或根据业务需要延时
    $a=file_put_contents('1.txt','异步处理完成时间为:'.date("Y-m-d H:i:s", time()));
    //存数据库等操作 或者发送其他通知之类的
    var_dump($a);
}
asyn2();

演示效果一直接浏览器访问(点击图片放大)


php_asyn.png

演示效果二ajax请求(点击图片放大)

ajax.png

相关文章

  • php异步调用测试【学习】

    php异步调用测试 访问的脚本 异步处理脚本 演示效果一直接浏览器访问(点击图片放大) 演示效果二ajax请求(点...

  • PHP异步调用

    layout: posttitle: "PHP异步调用"date: 2016-08-04 00:02:32 +08...

  • php异步调用方法

    客户端与服务器端是通过HTTP协议进行连接通讯,客户端发起请求,服务器端接收到请求后执行处理,并返回处理结果。有时...

  • 实现异步转同步

    极客时间-《Java并发编程实战》学习笔记 异步方法:调用方法,在方法中启动子线程异步调用:启动子线程调用方法异步...

  • Laravel队列及supervisor

    队列 参考文档 使用 创建失败数据库 queue.php配置 SendSmsJob类 调用 测试php artis...

  • Spring中使用@Async异步调用方法

    摘要 异步调用传统SSM项目实现 异步调用SpringBoot实现 Async简介: 异步方法调用使用场景:处理日...

  • 二十、PHP图片上传

    index.php Ajax+PHP实现异步图片上传

  • Dubbo中的那些坑(二)异步调用

    Dubbo异步调用 Dubbo原生支持异步调用,但其中依然有坑。 异步调用依赖传递性 问题表现:如果consume...

  • 2-2 异步调用

    使用 异步调用的使用非常简单,只需要如下配置 async="true" 便是异步调用,默认同步。 异步调用指的...

  • Jetpact 之 ViewModel

    ViewModel的诞生: 瞬态数据丢失 异步调用的内存泄漏 类膨胀提高维护难度和测试难度 ViewModel的作...

网友评论

      本文标题:php异步调用测试【学习】

      本文链接:https://www.haomeiwen.com/subject/cjconttx.html