daemon {mirai} | R Documentation |
Daemon Instance
Description
Starts up an execution daemon to receive mirai
requests. Awaits
data, evaluates an expression in an environment containing the supplied
data, and returns the value to the host caller. Daemon settings may be
controlled by daemons
and this function should not need to
be invoked directly, unless deploying manually on remote resources.
Usage
daemon(
url,
autoexit = TRUE,
cleanup = TRUE,
output = FALSE,
maxtasks = Inf,
idletime = Inf,
walltime = Inf,
timerstart = 0L,
...,
tls = NULL,
rs = NULL
)
Arguments
url |
the character host or dispatcher URL to dial into, including the port to connect to (and optionally for websockets, a path), e.g. 'tcp://hostname:5555' or 'ws://10.75.32.70:5555/path'. |
autoexit |
[default TRUE] logical value, whether the daemon should
exit automatically when its socket connection ends. If a signal from the
tools package, e.g. |
cleanup |
[default TRUE] logical value, whether to perform cleanup of the global environment and restore loaded packages and options to an initial state after each evaluation. For more granular control, also accepts an integer value (see ‘Cleanup Options’ section below). |
output |
[default FALSE] logical value, to output generated stdout /
stderr if TRUE, or else discard if FALSE. Specify as TRUE in the
‘...’ argument to |
maxtasks |
[default Inf] the maximum number of tasks to execute (task limit) before exiting. |
idletime |
[default Inf] maximum idle time, since completion of the last task (in milliseconds) before exiting. |
walltime |
[default Inf] soft walltime, or the minimum amount of real time taken (in milliseconds) before exiting. |
timerstart |
[default 0L] number of completed tasks after which to start the timer for ‘idletime’ and ‘walltime’. 0L implies timers are started upon launch. |
... |
reserved but not currently used. |
tls |
[default NULL] required for secure TLS connections over 'tls+tcp://'
or 'wss://'. Either the character path to a file containing
X.509 certificate(s) in PEM format, comprising the certificate authority
certificate chain starting with the TLS certificate and ending with the
CA certificate, or a length 2 character vector comprising [i]
the certificate authority certificate chain and [ii] the empty string
|
rs |
[default NULL] the initial value of .Random.seed. This is set automatically using L'Ecuyer-CMRG RNG streams generated by the host process and should not be independently supplied. |
Details
The network topology is such that daemons dial into the host or dispatcher, which listens at the ‘url’ address. In this way, network resources may be added or removed dynamically and the host or dispatcher automatically distributes tasks to all available daemons.
Value
Invisible NULL.
Persistence
The ‘autoexit’ argument governs persistence settings for the daemon. The default TRUE ensures that it will exit cleanly once its socket connection has ended.
Instead of TRUE, supplying a signal from the tools package, e.g.
tools::SIGINT
, or an equivalent integer value, sets the signal to
be raised when the socket connection ends. As an example, supplying
SIGINT allows a potentially more immediate exit by interrupting any
ongoing evaluation rather than letting it complete.
Setting to FALSE allows the daemon to persist indefinitely even when
there is no longer a socket connection. This allows a host session to end
and a new session to connect at the URL where the daemon is dialled in.
Daemons must be terminated with daemons(NULL)
in this case, which
sends explicit exit instructions to all connected daemons.
Persistence also implies that dials are performed asynchronously, which means retries are attempted (indefinitely) if not immediately successful. This is resilient behaviour but can mask potential connection issues.
Cleanup Options
The ‘cleanup’ argument also accepts an integer value, which operates an additive bitmask: perform cleanup of the global environment (1L), reset loaded packages to an initial state (2L), restore options to an initial state (4L), and perform garbage collection (8L).
As an example, to perform cleanup of the global environment and garbage collection, specify 9L (1L + 8L). The default argument value of TRUE performs all actions apart from garbage collection and is equivalent to a value of 7L.
Caution: do not reset options but not loaded packages if packages set options on load.