【发布时间】:2018-03-24 12:17:28
【问题描述】:
我有一个非常简单的对 Alpha Vantage API 的 PHP 调用,以用纳斯达克股票价格填充表格(或列表):
<?php
function get_price($commodity = "")
{
$url = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=' . $commodity . '&outputsize=full&apikey=myKey';
$obj = json_decode(file_get_contents($url), true);
$date = $obj['Meta Data']['3. Last Refreshed'];
$result = $obj['Time Series (Daily)']['2018-03-23']['4. close'];
$rd_result = round($result, 2);
echo $result;
}
?>
<?php get_price("XOM");
get_price("AAPL");
get_price("MSFT");
get_price("CVX");
get_price("CAT");
get_price("BA");
?>
它确实有效,但速度太慢了。它可能需要超过 30 秒。加载 Alpha Vantage 的 json 文件在几分之一秒内加载。
有谁知道我哪里出错了?
【问题讨论】:
-
当我尝试访问这些 URL 时,我需要大约 2-4 秒才能完全获取它们(每个)。尝试您的代码时,执行它大约需要 16-18 秒,这是正确的,因为您要获取 6 个 URL。如果他们的 API 稍微滞后(或者您的服务器确实滞后,因为您同时获取大量数据),则有时可能需要更长的时间。
-
是的,但肯定必须有其他方法来加快处理速度(即同时进行所有调用,而不是连续调用),因为想象我想获得一个包含所有 100 个的简单列表纳斯达克的公司,这是相当合理的事情,需要几分钟才能将它们全部获取......
-
有 PHP 库用于发出异步 HTTP 请求。您可以搜索一些并尝试一下,看看它们是否适合您。
标签: php rest finance alpha-vantage