try
that retries on failureThis is useful for functions that are "flaky", such as curl
, which may fail for unknown
reasons that do not persist.
retry(
expr,
envir = parent.frame(),
retries = 5,
exponentialDecayBase = 1.3,
silent = TRUE,
exprBetween = NULL,
messageFn = message
)
Quoted expression to run, i.e., quote(...)
The environment in which to evaluate the quoted expression, default
to parent.frame(1)
Numeric. The maximum number of retries.
Numeric > 1.0. The delay between
successive retries will be runif(1, min = 0, max = exponentialDecayBase ^ i - 1)
where i
is the retry number (i.e., follows seq_len(retries)
)
Logical indicating whether to try
silently.
Another expression that should be run after a failed attempt of the `expr`. This should return a named list, where the names indicate the object names to update in the main expr, and the return value is the new value. (previous versions allowed a non-list return, but where the final line had to be an assignment operator, specifying what object (that is used in `expr`) will be updated prior to running the `expr` again. For backwards compatibility, this still works).
A function for messaging to console. Defaults to message
Based on https://github.com/jennybc/googlesheets/issues/219#issuecomment-195218525.