This function is useful for inheriting argument documentation
in functions that create custom third-party launchers. See
@inheritParams crew::crew_launcher in the source code file of
crew_launcher_local().
crew_launcher(
name = NULL,
seconds_interval = 0.5,
seconds_timeout = 60,
seconds_launch = 30,
seconds_idle = Inf,
seconds_wall = Inf,
seconds_exit = NULL,
tasks_max = Inf,
tasks_timers = 0L,
reset_globals = TRUE,
reset_packages = FALSE,
reset_options = FALSE,
garbage_collection = FALSE,
launch_max = 5L,
tls = crew::crew_tls(),
processes = NULL
)Name of the launcher.
Number of seconds between
polling intervals waiting for certain internal
synchronous operations to complete,
such as checking mirai::status().
Number of seconds until timing
out while waiting for certain synchronous operations to complete,
such as checking mirai::status().
Seconds of startup time to allow.
A worker is unconditionally assumed to be alive
from the moment of its launch until seconds_launch seconds later.
After seconds_launch seconds, the worker is only
considered alive if it is actively connected to its assign websocket.
Maximum number of seconds that a worker can idle
since the completion of the last task. If exceeded, the worker exits.
But the timer does not launch until tasks_timers tasks
have completed.
See the idletime argument of mirai::daemon(). crew does not
excel with perfectly transient workers because it does not micromanage
the assignment of tasks to workers, so please allow enough idle
time for a new worker to be delegated a new task.
Soft wall time in seconds.
The timer does not launch until tasks_timers tasks
have completed.
See the walltime argument of mirai::daemon().
Deprecated on 2023-09-21 in version 0.5.0.9002. No longer necessary.
Maximum number of tasks that a worker will do before
exiting. See the maxtasks argument of mirai::daemon().
crew does not
excel with perfectly transient workers because it does not micromanage
the assignment of tasks to workers, it is recommended to set
tasks_max to a value greater than 1.
Number of tasks to do before activating
the timers for seconds_idle and seconds_wall.
See the timerstart argument of mirai::daemon().
TRUE to reset global environment
variables between tasks, FALSE to leave them alone.
TRUE to unload any packages loaded during
a task (runs between each task), FALSE to leave packages alone.
TRUE to reset global options to their original
state between each task, FALSE otherwise. It is recommended to
only set reset_options = TRUE if reset_packages is also TRUE
because packages sometimes rely on options they set at loading time.
TRUE to run garbage collection between
tasks, FALSE to skip.
Positive integer of length 1, maximum allowed
consecutive launch attempts which do not complete any tasks.
Enforced on a worker-by-worker basis.
The futile launch count resets to back 0
for each worker that completes a task.
It is recommended to set launch_max above 0
because sometimes workers are unproductive under perfectly ordinary
circumstances. But launch_max should still be small enough
to detect errors in the underlying platform.
A TLS configuration object from crew_tls().
NULL or positive integer of length 1,
number of local processes to
launch to allow worker launches to happen asynchronously. If NULL,
then no local processes are launched. If 1 or greater, then the launcher
starts the processes on start() and ends them on terminate().
Plugins that may use these processes should run asynchronous calls
using launcher$async$eval() and expect a mirai task object
as the return value.
Other launcher:
crew_class_launcher
if (identical(Sys.getenv("CREW_EXAMPLES"), "true")) {
client <- crew_client()
client$start()
launcher <- crew_launcher_local(name = client$name)
launcher$start(sockets = client$summary()$socket)
launcher$launch(index = 1L)
task <- mirai::mirai("result", .compute = client$name)
mirai::call_mirai_(task)
task$data
client$terminate()
}
Run the code above in your browser using DataLab