2015-09-12 2 views
4
async.retry({times : 25,interval : 30000},myFunction.bind(functionData),function(err,results){ 
console.log("===================================") 
console.log("Async function finished processing") 
return; 
}) 

myFunction вызывается немедленно, и это слишком 5 раз, что по умолчанию. также нет периода ожидания между вызовамиAsync.retry выполняет немедленно перед ожиданием интервала

+0

Вы можете показать код для 'myFunction'? – Robbie

ответ

0

Повторение зависит от обратного вызова внутри вашей функции. Если первый аргумент обратного вызова не является ложным, он будет повторять попытку на основе настроек times и interval. Например:

var async = require('async'); 
var count = 0; 
var functionData = { some: 'data' }; 
var myFunction = function(callback, results) { 
    console.log(++count); 
    process.nextTick(function() { 
    if (count < 5) { // Fail 5 times 
     return callback({ message: 'this failed' }, null); 
    } 
    callback(null, { message: 'this succeeded' }); 
    }); 
}; 

async.retry({times : 25, interval : 1000}, myFunction.bind(functionData), function(err, results) { 
    console.log("===================================") 
    console.log("Async function finished processing") 
    return; 
}); 

Это выводит:

1 
2 
3 
4 
5 
=================================== 
Async function finished processing 

с 1-секундным интервалом между каждой попыткой

+0

async.retry (OPTS, функция (обратный вызов) { console.log ("ХХХХ"); возврата обратного вызова (новая ошибка ("SDA"));} , функция (ERR) { обратного вызова (ERR); }); –

+0

Проблема isync.retry выполняется 5 раз, даже когда я использую {times: 25, interval: 60000} –

+0

, кроме неопределенного 'callback', фрагмент, который вы вставили в 1-й комментарий, работает, как и ожидалось для меня. То есть он повторяет 25 раз. – Robbie

2

Это вопрос версии я думаю.

Старые версии async.retry можно назвать только с номером в качестве первого agument (например, см v1.2.0 docs)

Он не принимает opts объект. Поэтому, если вы передаете его вместо числа для первого аргумента, по умолчанию он не имеет интервала, а число повторных попыток равно 5.

У меня была эта же проблема с использованием v0.9.0 библиотеки, обновление до версии 4.1. проблема.

Смежные вопросы