【问题标题】:How can I throttle a Highland.js or Node.js stream to one object per second?如何将 Highland.js 或 Node.js 流限制为每秒一个对象?
【发布时间】:2015-09-16 15:56:11
【问题描述】:

我希望能够将对getPagerank() 的调用限制为每秒一个。我尝试了各种方法,但无法正常工作。

var pagerank = require('pagerank');
var _ = require('highland');

var urls = [
    'google.com',
    'yahoo.com',
    'bing.com'
];

var getPagerank = _.wrapCallback(pagerank);

// I want to throttle calls to getPagerank to 1/sec
var pageRanks = _(urls)
    .map(getPagerank)
    .merge();

pageRanks.toArray(function(arr) {
    console.log(arr);
});

【问题讨论】:

    标签: javascript node.js stream highland.js


    【解决方案1】:

    您可以使用.ratelimit()

    例如这将限制流每秒处理数组中的一项

    var _ = require('highland');
    
    _([1,2,3,4]).ratelimit(1, 1000).map(function(x){
      return String(x);
    })
    .pipe(process.stdout);
    

    【讨论】:

    • 我认为我在扫描文档方面做得不错。可能不会。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-05-25
    • 2015-07-12
    • 2018-03-23
    • 2014-05-16
    • 2019-11-14
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多