Where Job expressions are evaluated.
hooksA named list of currently registered callback hooks.
jobThe currently running Job.
psThe ps::ps_handle() object for the background process.
stateThe Worker's state: 'starting', 'idle', 'busy', or 'stopped'.
uidA short string, e.g. 'W11', that uniquely identifies this Worker.
tmpThe Worker's temporary directory.
cndThe error that caused the Worker to stop.
new()Creates a background R process for running Jobs.
Worker$new(
globals = NULL,
packages = NULL,
init = NULL,
hooks = NULL,
wait = TRUE,
timeout = Inf
)globalsA named list of variables that all <Job>$exprs will have
access to. Alternatively, an object that can be coerced to a named
list with as.list(), e.g. named vector, data.frame, or environment.
packagesCharacter vector of package names to load on workers.
initA call or R expression wrapped in curly braces to evaluate on
each worker just once, immediately after start-up. Will have access
to variables defined by globals and assets from packages.
Returned value is ignored.
hooksA named list of functions to run when the Worker state
changes, of the form hooks = list(idle = function (worker) {...}).
Names of worker hooks are typically starting, idle, busy,
stopped, or '*' (duplicates okay). See vignette('hooks').
waitIf TRUE, blocks until the Worker is 'idle'. If FALSE, the
Worker object is returned in the 'starting' state.
timeoutHow long to wait for the worker to finish starting (in seconds).
If NA, defaults to the Worker$new() argument.
A Worker object.
...Arguments are not used currently.
The Worker, invisibly.
waitIf TRUE, blocks until the Worker is 'idle'. If FALSE, the
Worker object is returned in the 'starting' state.
timeoutHow long to wait for the worker to finish starting (in seconds).
If NA, defaults to the Worker$new() argument.
The Worker, invisibly.
stop()Stops a Worker by terminating the background process and calling
<Job>$stop(reason) on any Jobs currently assigned to this Worker.
Worker$stop(reason = "worker stopped by user", cls = NULL)reasonPassed to <Job>$stop() for any Jobs currently managed by
this Worker.
clsPassed to <Job>$stop() for any Jobs currently managed by this
Worker.
The Worker, invisibly.
restart()Restarts a Worker by calling <Worker>$stop(reason) and
<Worker>$start() in succession.
Worker$restart(
wait = TRUE,
timeout = NA,
reason = "restarting worker",
cls = NULL
)waitIf TRUE, blocks until the Worker is 'idle'. If FALSE, the
Worker object is returned in the 'starting' state.
timeoutHow long to wait for the worker to finish starting (in seconds).
If NA, defaults to the Worker$new() argument.
reasonPassed to <Job>$stop() for any Jobs currently managed by
this Worker.
clsPassed to <Job>$stop() for any Jobs currently managed by this
Worker.
The Worker, invisibly.
on()Attach a callback function to execute when the Worker enters state.
Worker$on(state, func)stateThe name of a Worker state. Typically one of:
'*' - Every time the state changes.
'.next' - Only one time, the next time the state changes.
'starting' - Waiting for the background process to load.
'idle' - Waiting for Jobs to be $run().
'busy' - While a Job is running.
'stopped' - After <Worker>$stop() is called.
funcA function that accepts a Worker object as input. You can call
<Worker>$stop() and other <Worker>$ methods.
A function that when called removes this callback from the Worker.
wait()Blocks until the Worker enters the given state.
Worker$wait(state = "idle", timeout = Inf, signal = TRUE)stateThe name of a Worker state. Typically one of:
'*' - Every time the state changes.
'.next' - Only one time, the next time the state changes.
'starting' - Waiting for the background process to load.
'idle' - Waiting for Jobs to be $run().
'busy' - While a Job is running.
'stopped' - After <Worker>$stop() is called.
timeoutStop the Worker if it takes longer than this number of seconds.
signalRaise an error if encountered (will also be recorded in <Worker>$cnd).
This Worker, invisibly.
run()Assigns a Job to this Worker for evaluation on the background process.
Worker$run(job)jobA Job object, as created by Job$new().
This Worker, invisibly.