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),那部分的连接仍旧使用以秒计的超时解决方案,最小超时时间还是一秒钟。

  • 相关阅读:
    jquery 遮罩层显示img
    redis 模糊查找keys
    consul windows安装
    redis cluster以及master-slave在windows下环境搭建
    c# 设置和取消文件夹共享及执行Dos命令
    svg教程
    mybatis高级查询
    css常用技巧1
    ssm搭建,maven,javaConfig
    MyBatis整体架构
  • 原文地址:https://www.cnblogs.com/jcuan/p/6566321.html
Copyright © 2011-2022 走看看