Jobs go in. Results come out.
Active bindings
hooksA named list of currently registered callback hooks.
jobsGet or set - List of jobs currently managed by this
jobqueue.stateThe
jobqueue'sstate:'starting','idle','busy','stopped', or'error.'uidA short string, e.g.
'Q1', that uniquely identifies thisjobqueue.tmpThe
jobqueue's temporary directory.workerscndThe error that caused the
jobqueueto stop.
Methods
Method new()
Creates a pool of background processes for handling $run() and
$submit() calls. These workers are initialized
according to the globals, packages, and init arguments.
Usage
jobqueue_class$new(
globals = NULL,
packages = NULL,
namespace = NULL,
init = NULL,
max_cpus = availableCores(),
workers = ceiling(max_cpus * 1.2),
timeout = NULL,
hooks = NULL,
reformat = NULL,
signal = FALSE,
cpus = 1L,
stop_id = NULL,
copy_id = NULL
)Arguments
globalsA named list of variables that all
<job>$exprs will have access to. Alternatively, an object that can be coerced to a named list withas.list(), e.g. named vector, data.frame, or environment.packagesCharacter vector of package names to load on
workers.namespaceThe name of a package to attach to the
worker'senvironment.initA call or R expression wrapped in curly braces to evaluate on each
workerjust once, immediately after start-up. Will have access to variables defined byglobalsand assets frompackagesandnamespace. Returned value is ignored.max_cpusTotal number of CPU cores that can be reserved by all running
jobs(sum(<job>$cpus)). Does not enforce limits on actual CPU utilization.workersHow many background
workerprocesses to start. Set to more thanmax_cpusto enable standbyworkersto quickly swap out withworkersthat need to restart.timeout, hooks, reformat, signal, cpus, stop_id, copy_idDefaults for this
jobqueue's$run()method. Here only,stop_idandcopy_idmust be either afunction (job)orNULL.hookscan setjobqueue,worker, and/orjobhooks - see the "Attaching" section invignette('hooks').
Method print()
Print method for a jobqueue.
Method run()
Creates a job object and submits it to the
jobqueue for running. Any NA arguments will be
replaced with their value from jobqueue_class$new().
Usage
jobqueue_class$run(
expr,
vars = list(),
timeout = NA,
hooks = NA,
reformat = NA,
signal = NA,
cpus = NA,
stop_id = NA,
copy_id = NA,
...
)Arguments
exprA call or R expression wrapped in curly braces to evaluate on a
worker. Will have access to any variables defined byvars, as well as thejobqueue'sglobals,packages, andinitconfiguration. Seevignette('eval').varsA named list of variables to make available to
exprduring evaluation. Alternatively, an object that can be coerced to a named list withas.list(), e.g. named vector, data.frame, or environment. Or afunction (job)that returns such an object.timeoutA named numeric vector indicating the maximum number of seconds allowed for each state the
jobpasses through, or 'total' to apply a single timeout from 'submitted' to 'done'. Can also limit the 'starting' state forworkers. Afunction (job)can be used in place of a number. Example:timeout = c(total = 2.5, running = 1). Seevignette('stops').hooksA named list of functions to run when the
jobstate changes, of the formhooks = list(created = function (worker) {...}). Or afunction (job)that returns the same. Names ofworkerhooks are typically'created','submitted','queued','dispatched','starting','running','done', or'*'(duplicates okay). Seevignette('hooks').reformatSet
reformat = function (job)to define what<job>$resultshould return. The default,reformat = NULLpasses<job>$outputto<job>$resultunchanged. Seevignette('results').signalShould calling
<job>$resultsignal on condition objects? WhenFALSE,<job>$resultwill return the object without taking additional action. Setting toTRUEor a character vector of condition classes, e.g.c('interrupt', 'error', 'warning'), will cause the equivalent ofstop(<condition>)to be called when those conditions are produced. Alternatively, afunction (job)that returnsTRUEorFALSE. Seevignette('results').cpusHow many CPU cores to reserve for this
job. Or afunction (job)that returns the same. Used to limit the number ofjobsrunning simultaneously to respect<jobqueue>$max_cpus. Does not prevent ajobfrom using more CPUs than reserved.stop_idIf an existing
jobin thejobqueuehas the samestop_id, thatjobwill be stopped and return an 'interrupt' condition object as its result.stop_idcan also be afunction (job)that returns thestop_idto assign to a givenjob. Astop_idofNULLdisables this feature. Seevignette('stops').copy_idIf an existing
jobin thejobqueuehas the samecopy_id, the newly submittedjobwill become a "proxy" for that earlierjob, returning whatever result the earlierjobreturns.copy_idcan also be afunction (job)that returns thecopy_idto assign to a givenjob. Acopy_idofNULLdisables this feature. Seevignette('stops')....Arbitrary named values to add to the returned
jobobject.
Returns
The new job object.
Method submit()
Adds a job to the jobqueue for
running on a background process.
Arguments
jobA
jobobject, as created byjob_class$new().
Method wait()
Blocks until the jobqueue enters the given state.
Method on()
Attach a callback function to execute when the
jobqueue enters state.
