我正在构建一个应用程序,它一度卷曲外部URL中的一些内容.到目前为止,这一直都很快/立即完成.但是,我不确定如果外部服务器需要很长时间才能响应会发生什么.在cURL完成之前,PHP会等待执行以下代码吗?
我无法真正测试它,因为我不知道如何"模拟"较慢的响应.我希望这个伪代码能够清楚地表达我的问题:
$ch = curl_init( $some_remote_url );
$fp = fopen( $some_local_file, 'wb' );
curl_setopt( $ch, CURLOPT_FILE, $fp );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_exec( $ch ); // Let's say this takes 20 seconds until the other server responds
curl_close( $ch );
fclose( $fp );
redirect( $some_other_url ); // Will this be executed instantly or only after 20 seconds?
Run Code Online (Sandbox Code Playgroud)
我之所以想知道这是因为我不希望我的用户在远程服务器响应缓慢的情况下查看"加载"页面20秒,所以我可能不得不将整个过程移动到cron作业.用户不需要立即卷曲的结果,因此在完成该过程时对他来说无关紧要.
Curl 将阻止执行。如果要在后台(异步)下载文件,请使用 cron 计划任务,或执行如下命令:
system("wget URL &");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1708 次 |
最近记录: |