如何在使用 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
我的两个选择是
- 增加超时时间,或者
- 确保我只在调用 n-1 解决后才 运行 调用 n。
我正在寻找一种方法来执行第一个选项,然后再默认为第二个选项。
谢谢!
我最终使用 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个就超时
在我正在进行的项目中,我试图通过 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
我的两个选择是
- 增加超时时间,或者
- 确保我只在调用 n-1 解决后才 运行 调用 n。
我正在寻找一种方法来执行第一个选项,然后再默认为第二个选项。
谢谢!
我最终使用 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个就超时