Description Usage Arguments Details Examples
Create a heartbeat instance. This can be used by running
obj$start()
which will reset the TTL (Time To Live) on key
every
period
seconds (don't set this too high). If the R process
dies, then the key will expire after 3 * period
seconds (or
set expire
) and another application can tell that this R
instance has died.
1 2 3 4 5 6 7 8 9 |
key |
Key to use |
period |
Timeout period (in seconds) |
expire |
Key expiry time (in seconds) |
value |
Value to store in the key. By default it stores the expiry time, so the time since last heartbeat can be computed. |
config |
Configuration parameters passed through to
|
start |
Should the heartbeat be started immediately? |
timeout |
Time, in seconds, to wait for the heartbeat to appear. It should generally appear very quickly (within a second unless your connection is very slow) so this can be generally left alone. |
The heartbeat object has three methods:
is_running()
which returns TRUE
or
FALSE
if the heartbeat is/is not running.
start()
which starts a heartbeat
stop()
which requests a stop for the heartbeat
Heavily inspired by the doRedis
package.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | if (redux::redis_available()) {
rand_str <- function() {
paste(sample(letters, 20, TRUE), collapse = "")
}
key <- sprintf("heartbeatr:test:%s", rand_str())
h <- heartbeatr::heartbeat(key, 1, expire = 2)
con <- redux::hiredis()
# The heartbeat key exists
con$EXISTS(key)
# And has an expiry of less than 2000ms
con$PTTL(key)
# We can manually stop the heartbeat, and 2s later the key will
# stop existing
h$stop()
# Sys.sleep(2)
# con$EXISTS(key) # 0
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.