tar_cue_age {tarchetypes} | R Documentation |
Cue to run a target when the last output reaches a certain age
Description
tar_cue_age()
creates a cue object to
rerun a target if the most recent output data becomes old enough.
The age of the target is determined by targets::tar_timestamp()
,
and the way the time stamp is calculated is explained
in the Details section of the help file of that function.
Usage
tar_cue_age(
name,
age,
command = TRUE,
depend = TRUE,
format = TRUE,
repository = TRUE,
iteration = TRUE,
file = TRUE
)
Arguments
name |
Symbol, name of the target. |
age |
A |
command |
Logical, whether to rerun the target if command changed since last time. |
depend |
Logical, whether to rerun the target if the value of one of the dependencies changed. |
format |
Logical, whether to rerun the target if the user-specified
storage format changed. The storage format is user-specified through
|
repository |
Logical, whether to rerun the target if the user-specified
storage repository changed. The storage repository is user-specified
through |
iteration |
Logical, whether to rerun the target if the user-specified
iteration method changed. The iteration method is user-specified through
|
file |
Logical, whether to rerun the target if the file(s) with the return value changed or at least one is missing. |
Details
tar_cue_age()
uses the time stamps from tar_meta()$time
.
If no time stamp is recorded, the cue defaults to the ordinary
invalidation rules (i.e. mode = "thorough"
in targets::tar_cue()
).
Value
A cue object. See the "Cue objects" section for background.
Dynamic branches at regular time intervals
Time stamps are not recorded for whole dynamic targets,
so tar_age()
is not a good fit for dynamic branching.
To invalidate dynamic branches at regular intervals,
it is recommended to use targets::tar_older()
in combination
with targets::tar_invalidate()
right before calling tar_make()
.
For example,
tar_invalidate(any_of(tar_older(Sys.time - as.difftime(1, units = "weeks"))))
# nolint
invalidates all targets more than a week old. Then, the next tar_make()
will rerun those targets.
Cue objects
A cue object is an object generated by targets::tar_cue()
,
tarchetypes::tar_cue_force()
, or similar. It is
a collection of decision rules that decide when a target
is invalidated/outdated (e.g. when tar_make()
or similar
reruns the target). You can supply these cue objects to the
tar_target()
function or similar. For example,
tar_target(x, run_stuff(), cue = tar_cue(mode = "always"))
is a target that always calls run_stuff()
during tar_make()
and always shows as invalidated/outdated in tar_outdated()
,
tar_visnetwork()
, and similar functions.
See Also
Other cues:
tar_age()
,
tar_cue_age_raw()
,
tar_cue_force()
,
tar_cue_skip()
Examples
if (identical(Sys.getenv("TAR_LONG_EXAMPLES"), "true")) {
targets::tar_dir({ # tar_dir() runs code from a temporary directory.
targets::tar_script({
library(tarchetypes)
list(
targets::tar_target(
data,
data.frame(x = seq_len(26)),
cue = tarchetypes::tar_cue_age(
name = data,
age = as.difftime(0.5, units = "secs")
)
)
)
})
targets::tar_make()
Sys.sleep(0.6)
targets::tar_make()
})
}