在 PHP 中尽可能快地点击 URL


Hit URL as Fast as Possible in PHP

在我的PHP应用程序的一部分,我需要进行REST风格的API调用并继续工作。 我不关心 API 调用的结果(所以我不需要看到返回值),但我确实需要能够将其关闭并继续工作。

如果我使用 file_get_contents() 来执行此操作,那么它将等到 url 返回。 我可以在 CURL 中设置超时,但它允许的最小超时是一秒,所以这不是很有用。我已经在 CURL 中寻找其他选项,但还没有找到任何东西。

由于我已经编写了被击中的 API 的这一部分,我目前让它立即返回并继续使用该代码,但将来如果我与其他外部 API 交谈,那么我需要知道如何做到这一点,这似乎是更好的做法不依赖某些外部代码让您的脚本继续工作。请求 URL 而不关心返回的内容可能不是很正常,但这就是我需要的!有人知道怎么做吗?

只需使用 curl_multi_exec() ,并在返回响应标头后终止连接。

这假定在内容开始处理之前发送响应标头,并且在断开连接后远程脚本将继续运行。

听起来您可能需要考虑将对 API 的调用移动到后台作业。

你可能要考虑php resque,https://github.com/chrisboulton/php-resque

或者使用数据库表和 cron 作业来滚动自己的。

如果你可以从客户端尝试,也许这会有所帮助!

function loadNow()
{
    $.load('cURL URL');
}
setInterval('loadNow()', 500);

希望这有帮助! :)

如果您的输出是 HTML,您可能需要考虑将调用移动到 iframe 中。