X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Fhelpers%2Futils.js;h=fb4dd08cc6df36e2f97676fbb5c04723fdb78741;hb=d6a5b018b89f9d2569ca7435b0e270095c93cc17;hp=a902850cdd044026247350d479b8de07dd45e51b;hpb=a7721e62c028f54c1d165b53ac1a7a60b6c3b82e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/utils.js b/server/helpers/utils.js index a902850cd..fb4dd08cc 100644 --- a/server/helpers/utils.js +++ b/server/helpers/utils.js @@ -11,6 +11,7 @@ const utils = { generateRandomString, isTestInstance, getFormatedObjects, + retryWrapper, transactionRetryer } @@ -48,6 +49,25 @@ function getFormatedObjects (objects, objectsTotal) { } } +// { arguments, errorMessage } +function retryWrapper (functionToRetry, options, finalCallback) { + const args = options.arguments ? options.arguments : [] + + utils.transactionRetryer( + function (callback) { + return functionToRetry.apply(this, args.concat([ callback ])) + }, + function (err) { + if (err) { + logger.error(options.errorMessage, { error: err }) + } + + // Do not return the error, continue the process + return finalCallback(null) + } + ) +} + function transactionRetryer (func, callback) { retry({ times: 5,