如何在使用 Watson 的 Tone Analyzer 时延长超时时间

How to extend the timeout when using Watson's Tone Analyzer

在我正在进行的项目中,我试图通过 Watson 的 Tone Analyzer 分析 500 个文本块。问题是,当我 运行 并行 500 个 http 调用时,服务超时。以下是给我带来问题的代码:

function analyzeManyPosts(posts){

    var qPromise = q.defer();

    const count = posts.length;

    var promList = posts.map(function(post){
        // analyzeSinglePost is another function I wrote that returns a promise 
        // that works as intended
        return analyzeSinglePost(post); 
    });

    //Return a collection of all promises
    return q.all(promList);
}

当我调用上述函数时,出现超时错误 Error: connect ETIMEDOUT

我的两个选择是

我正在寻找一种方法来执行第一个选项,然后再默认为第二个选项。

谢谢!

我最终使用 throat 来限制并发调用,这样就没有一个调用超时。我通过以下方式做到了:

function analyzeManyPosts(posts){

    var qPromise = q.defer();

    const count = posts.length;

    //Limit to 50 calls at a time
    var promList = posts.map(throat(function(post, i){
        console.log(i);
        return analyzeSinglePost(post);
    }, 50));

    //Return a collection of all promises
    return q.all(promList);
}

这样一次只调用50个,避免一次调用500个就超时