使用Php实现异步调用「建议收藏」

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

转载于:https://www.cnblogs.com/jcuan/p/6566321.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108616.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号