0

我正在使用 PHP 的 curl_exec() 向一个运行时间很长的 API 发出请求。但我实际上并不需要知道结果,我只需要启动过程。

这个过程是成功还是失败对我来说并不重要。所以我想在我提出请求后立即断开连接。

如何删除 curl_exec 连接?我不想等待 30 - 60 秒的响应:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://example.com/LongRunningProcess/parameter");        
curl_exec($ch); 
// need to do something here to just drop the connection, don't wait for curl_exec
// but what is that something?
curl_close($ch);

我相信解决方案可能会涉及 curl_multi?

4

2 回答 2

2

你可以使用CURLOPT_TIMEOUT. 从手册

允许 cURL 函数执行的最大秒数。

curl_setopt($ch, CURLOPT_TIMEOUT, 10);
于 2011-10-13T21:39:08.847 回答
2

根据远程服务器的配置方式,该过程可能会在您断开连接后立即结束。除非您 fork,或者远程服务器配置为允许它,否则您将不得不等待它结束。

如果您可以控制该远程服务器,则可以配置 PHP 以使其继续运行。您正在寻找ignore_user_abortPHP.ini作为函数

于 2011-10-13T21:40:28.767 回答