This function will return a number corresponding to the system time and remain stable until a given number of seconds have elapsed, after which it will update to the current time. This makes it useful as a way to timeout and invalidate a memoised cache after a certain period of time.

timeout(seconds, current = as.numeric(Sys.time()))

Arguments

seconds

Number of seconds after which to timeout.

current

The current time as a numeric.

Value

A numeric that will remain constant until the seconds have elapsed.

See also

Examples

a <- function(n) { runif(n) }
memA <- memoise(a, ~timeout(10))
memA(2)
#> [1] 0.8955860 0.3606852