- Overhaul worker configuration and creation; now all worker configuration options (except redis and storage control) are set through a named worker configuration; this reduces the number of arguments being passed around and improves documentation (mrc-4068)
- Extend fault tolerance support by enabling tasks to be retried; this creates a new task that the old task points at and can be used to seamlessly recover from all sorts of task failure (mrc-2683)
- Queues print vertically when printing out worker info (mrc-4114)
- New
$task_info
method to retrieve more detailed information about where a task was run (mrc-4058)
- Argument standardisation for timeouts, with changes:
collect_timeout
in bulk functions becomestimeout_task_wait
worker_stop_timeout
in therrq_controller
'sdestroy
method becomestimeout_worker_stop
task_timeout
in queuing a task on a separate process, in bulk submission functions becomestimeout_task_run
timeout
inenqueue
becomestimeout_task_run
- New argument
timeout_task_wait
and optionrrq.timeout_task_wait
to control the default time to wait for tasks to be returned fromtask_wait
and bulk task retrieval methods. The default behaviour is unchanged (blocking indefinitely) but this can now easily be changed at a global or queue-scoped level.
- Changed argument of
worker_config_save
fromtimeout
totimeout_idle
(mrc-4075)
- It is now possible to (optionally) throw task errors on retrieval via
task_wait
,task_results
and the bulk interfaces. The default remains not to error. - Bulk submitted tasks no longer auto-delete.
- Nicer errors that tell you what the contain, particularly when they have stack traces or warnings (mrc-1260)
- Drop
at_front
argument (introduced in rrq 0.2.14), tasks can no longer jump the queue (mrc-4069)
- Error traces now come from
rlang
and are much nicer to read (mrc-4060)
- Make separate process timeouts
timeout_poll
andtimeout_die
configurable via the worker config.
- Simplify version information returned by
worker_info
(mrc-2295)
- Renamed some functions with
rrq_
prefix; you must now userrq_worker_spawn()
(notworker_spawn
),rrq_worker_wait
,rrq_heartbeat
andrrq_heartbeat_kill
(mrc-2682)
- Expose
rrq::rrq_worker_from_config
, which is a simpler way of constructing worker objects. The worker object itself (rrq::rrq_worker
) loses its helper constructor function and is documented (mrc-2297)
- All tasks get a key that can be checked with a blocking wait (mrc-2392)
- Direct control over environment export for
$enqueue()
with new argumentexport
(mrc-2369)
- Add new
enqueue_bulk
method (previously deleted in 0.2.0) (mrc-2261)
enqueue
can add a task with dependencies i.e. tasks which must be complete before this task can be run viadepends_on
(mrc-2255)
enqueue
can add a task to start of the queue viaat_front = TRUE
(mrc-2254)
- Run tasks in a separate process (with some overhead) with new argument
separate_process = TRUE
to$enqueue()
. Use this to ensure isolation between tasks (mrc-2068)
- Add
task_preceeding
function to controller to list tasks in front of a particular task in the queue (vimc-4502)
- Support for multiple queues, with varying priorities. This can be used to create workers that listen to overlapping queues, with "fast" and "slow" queues (mrc-2068)
- Gracefully detect multiple killed workers (#22, reported by @MartinHanewald)
$lapply
and friends restored after being removed during the refactor for version 0.2.0 (mrc-558)
- Expand documentation (mrc-1800)
- rrq progress now passes all fields in underlying condition (mrc-1772)
- Update
worker_spawn
to work with breaking change in docopt (mrc-1667)
- New
$task_data
method for getting underlying task data (mrc-1304)
- Better error message is given when non-existent task is cancelled (mrc-1259)
- New
$worker_detect_exited
for detecting exited workers when a heartbeat is used (mrc-1231)
- Tasks can now be interrupted with
$task_cancel
if running with a heartbeat enabled (mrc-734)
- Add support for within-task progress updates, using the
rrq::rrq_task_progress_update
function, which can be called from any task run fromrrq
and queried with$task_progress
from arrq_controller
(mrc-600)
- Rewrite of the package to simplify queue creation and dependency chain (mrc-538 / #9, mrc-519 / #8, mrc-472 / #7)