Starts a worker.
The function loads the globals and packages, initializes the RushWorker instance and invokes the worker loop.
This function is called by $start_local_workers()
or by the user after creating the worker script with $create_worker_script()
.
Use with caution.
The global environment is changed.
Usage
start_worker(
worker_id = NULL,
network_id,
config = NULL,
remote = TRUE,
lgr_thresholds = NULL,
lgr_buffer_size = 0,
heartbeat_period = NULL,
heartbeat_expire = NULL
)
Arguments
- worker_id
(
character(1)
)
Identifier of the worker. Keys in redis specific to the worker are prefixed with the worker id.- network_id
(
character(1)
)
Identifier of the rush network. Controller and workers must have the same instance id. Keys in Redis are prefixed with the instance id.- config
(
list()
)
Configuration for the Redis connection.- remote
(
logical(1)
)
Whether the worker is on a remote machine.- lgr_thresholds
(named
character()
| namednumeric()
)
Logger threshold on the workers e.g.c(rush = "debug")
.- lgr_buffer_size
(
integer(1)
)
By default (lgr_buffer_size = 0
), the log messages are directly saved in the Redis data store. Iflgr_buffer_size > 0
, the log messages are buffered and saved in the Redis data store when the buffer is full. This improves the performance of the logging.- heartbeat_period
(
integer(1)
)
Period of the heartbeat in seconds. The heartbeat is updated everyheartbeat_period
seconds.- heartbeat_expire
(
integer(1)
)
Time to live of the heartbeat in seconds. The heartbeat key is set to expire afterheartbeat_expire
seconds.
Note
The function initializes the connection to the Redis data base. It loads the packages and copies the globals to the global environment of the worker. The function initialize the RushWorker instance and starts the worker loop.