zoukankan      html  css  js  c++  java
  • 使用Php实现异步调用

    结合用户的请求触发,可以实现计划任务

    使用popen/pclose

    函数原型

    resource popen ( string $command , string $mode )
    //打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生
    
    • command :命令 mode:模式("r"/"w")

    返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用 pclose() 来关闭。此指针可以用于 fgets()fgetss()fwrite()。 当模式为 'r',返回的文件指针等于命令的 STDOUT,当模式为 'w',返回的文件指针等于命令的 STDIN。

    需要忽略输出,使新的进程在后台运行

    pclose(popen("php test.php &", 'r'));
    

    如果要同步使用的化类似下边这样的

    //读取运行输出
    $handle = popen('php '.APPPATH.'task/ldap.php '.$stuno.' '. (int)$understu, 'r');
    $info = fread($handle,10000);
    pclose($handle);
    

    使用curl

    设置超时时间就行

    CURL常见选项

    CURLOPT_TIMEOUT 允许 cURL 函数执行的最长秒数

    CURLOPT_TIMEOUT_MS可以设置毫秒级别的超时,但是注意下边

    设置cURL允许执行的最长毫秒数。 如果 libcurl 编译时使用系统标准的名称解析器( standard system name resolver),那部分的连接仍旧使用以秒计的超时解决方案,最小超时时间还是一秒钟。

  • 相关阅读:
    前端综合练习与bootstrap
    05-前端之jQuery
    03-初识JavaScript
    02-初识CSS
    01-前端初识和body标签中的相关标签
    程序员笔记
    windows和Ubantu双系统安装图解
    获取http和ftp地址的图片
    HttpHelper类及调用
    简单的SqlHelper
  • 原文地址:https://www.cnblogs.com/jcuan/p/6566321.html
Copyright © 2011-2022 走看看