首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雅虎财务查询速度

雅虎财务查询速度
EN

Stack Overflow用户
提问于 2015-04-14 16:43:37
回答 1查看 905关注 0票数 1

我目前正在从事一个项目,其中涉及查询雅虎财务中的许多不同的代码。瓶颈是从雅虎获得数据,所以我想知道是否有办法加快速度。

如果我使用多台机器查询并聚合数据,这会有帮助吗?我只有一台物理机器,我该怎么做呢?

谢谢!

编辑:目前,我正在使用Node.js、雅虎财务和Q.deferred向雅虎询问历史数据。然后,一旦实现了所有的承诺(对于每个代码),我就会执行一个Q.all()来持久化数据。

代码语言:javascript
复制
    var data = [];
    tickers = ["goog", "aapl", ...];
    ...
    Q.all(_.map(tickers, function(symbol) { 
        return getYahooPromise(symbol);
     }))
    .done( function() { persistData(data) });

getYahooPromise检索代码号的数据并将其推入数据数组。一旦解决了所有承诺,数据就会持久化到MySQL数据库中。

第二次编辑:更多代码:

代码语言:javascript
复制
var sequentialCalls = [];

for ( var i = 0; i < tickers.length / chunkSize; i++ ) {
    sequentialCalls.push( persistYahooChunk );
}
sequentialCalls.push( function(callback) { 
    connection.end(); 
    callback();
});

async.series( sequentialCalls )



exports.persistYahooChunk = function(callback) {
console.log("Starting yahoo query");
var currentTickers = tickers.slice(currentTickerIndex,currentTickerIndex + chunkSize);


return yahooFinance.historical( {
    symbols: currentTickers,
    from: "2015-01-28",
    to: "2015-02-05"
}).then( function(result) {
    console.log("Query " + currentTickerIndex +  "/" + tickers.length + "completed");
    currentTickerIndex += chunkSize;
    //add valid data
    var toPersist = _.map(result, function(quotes, symbol) {
            return [symbol, quotes.length != 0 ];
    });


    var query = "INSERT INTO `ticker` (`symbol`, `valid`) VALUES ?";
    connection.query(query, [toPersist], function(err, result) {
        if (err) {
            console.log (err);
        }
        //console.log(result);

        callback();
    });
});

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 16:50:45

瓶颈是因为您正在每个滴答机执行一个查询。

根据您需要提取的数据,如果您可以执行包含所有代码的单个查询,则速度会快得多。

下面是一个示例,如果您需要通过一个查询获取一个代码列表的所有当前价格:

http://finance.yahoo.com/webservice/v1/symbols/A,B,C,D,E/quote?format=json

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29632921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档