| 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()
})
}