jobqueue-package: Job queue for computations in a separate thread

Description Details Author(s) References See Also Examples

Description

A generic implementation of an asynchronous job queue based on a 1-node-SOCKcluster from the parallel package.

Details

This package provides a queue-like interface that allows background computations while the calling R session remains responsive. The focus of the jobqueue package is on providing a simple and intuitive user interface.

Job results are available for pick-up in the order that the jobs were sent. Alternatively, jobs can be tagged and results can be retrieved based on their tag.

Job queues are created using Q.make. Jobs are typically pushed to the queue using Q.push and their results collected with Q.collect or Q.pop.

Note that queues have their own workspace which is separate from your current workspace. That means that you have to load any packages and set all variables that you need for your computations in the queue (see examples below).

Author(s)

Bastian Laubner <bastian.laubner@bramblecloud.com>

References

www.bramblecloud.com uses the jobqueue package for basic threading.

See Also

Q.make, Q.push, Q.collect

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# create job queue
Q = Q.make()

# push computation job to queue
Q.push(Q, sum(1:1e4) )

# perform other computations here while the job is computed 
# in the background

# retrieve result from job queue
Q.pop(Q)

# load package in the queue
Q.push(Q, library(stats4), mute=TRUE)

# set variables in the queue - you can also use Q.push or Q.sync
Q.assign(Q, "a", 5)

# close the queue and free its resources
Q.close(Q)


Search within the jobqueue package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.