如果函数内发生故障,我需要能够在node.js
中重试。我已经设置了一个while循环,如下所示,但是对于如何包装函数调用以确保它不会阻塞整个服务器,我有些困惑。
我该怎么办?
while(retryCount < 10 && !success){
// Alternative one
while(new Date().getTime() < now + 1000) {
myFunction();
}
// Or:
setTimeout( myFunction(), 1000);
}
最佳答案
您可以在函数对象中存储尝试次数。 cronjob很好。如果在请求上下文中需要相同的行为,则必须将尝试计数器存储在请求范围内(而不是在函数对象中)。
var fnc = function() {
console.log('try');
if (true) { // Error condition
// Error here
if (!fnc.tryes) fnc.tryes = 0;
fnc.tryes++;
console.log(fnc.tryes);
if (fnc.tryes <= 10) {
setTimeout(fnc, 1000);
} else {
fnc.tryes = 0;
}
// Something wrong
} else {
// We hame result
}
};
fnc();
关于node.js - 如何在node.js中设置setTimeout?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9768236/