Stop workers.
rrq_worker_stop(
worker_ids = NULL,
type = "message",
timeout = 0,
time_poll = 0.1,
progress = NULL,
controller = NULL
)
Optional vector of worker ids. If NULL
then
all active workers will be stopped.
The strategy used to stop the workers. Can be message
,
kill
or kill_local
(see Details).
Optional timeout; if greater than zero then we poll
for a response from the worker for this many seconds until they
acknowledge the message and stop (only has an effect if type
is message
). If a timeout of greater than zero is given, then
for a message
-based stop we wait up to this many seconds for the
worker to exit. That means that we might wait up to 2 * timeout
seconds for this function to return.
If type
is message
and timeout
is greater
than zero, this is the polling interval used between redis calls.
Increasing this reduces network load but decreases the ability
to interrupt the process.
Optional logical indicating if a progress bar
should be displayed. If NULL
we fall back on the value of the
global option rrq.progress
, and if that is unset display a
progress bar if in an interactive session.
The controller to use. If not given (or NULL
)
we'll use the controller registered with
rrq_default_controller_set()
.
The names of the stopped workers, invisibly.
The type
parameter indicates the strategy used to stop workers,
and interacts with other parameters. The strategies used by the
different values are:
message
, in which case a STOP
message will be sent to the
worker, which they will receive after finishing any currently
running task (if RUNNING
; IDLE
workers will stop immediately).
kill
, in which case a kill signal will be sent via the heartbeat
(if the worker is using one). This will kill the worker even if
is currently working on a task, eventually leaving that task with
a status of DIED
.
kill_local
, in which case a kill signal is sent using operating
system signals, which requires that the worker is on the same
machine as the controller.