Skip to contents

rush (development version)

  • chore: The minimum R version is now 3.6.0, and Redis (>= 7.0) is declared as a system requirement.
  • refactor: Remove deprecated worker types "local" and "remote".
  • refactor: $fail_tasks(), $finish_tasks(), $pop_task(), and $push_running_tasks() are moved from Rush to RushWorker so that a task is only marked as failed or finished by the worker that processes it.
  • fix: $fail_tasks() and $finish_tasks() now move a task between states atomically with MULTI/EXEC so that a worker crash mid-move can no longer remove a task from the running state without recording it as failed or finished.
  • refactor: The deprecated methods $push_failed() and $push_results() are removed. Use $fail_tasks() and $finish_tasks() instead.
  • fix: $empty_queue() no longer creates an orphaned hash in the Redis database when the queue is already empty.
  • BREAKING CHANGE: The $empty_queue() method now empties the entire queue instead of a specified set of tasks. The keys and conditions arguments are removed.
  • fix: $detect_lost_workers() no longer marks a task as both finished and failed, or loses a task.
  • fix: $detect_lost_workers() now returns only the worker ids it actually detected as lost during the call, instead of also including workers that terminated cleanly while the method was running.
  • fix: $pop_task() no longer loses a task when a worker crashes between popping the task from the queue and marking it as running. The task is now moved atomically into a per-worker pending list and recovered as a failed task by $detect_lost_workers().
  • fix: $push_tasks(), $push_finished_tasks(), $push_failed_tasks(), and $push_running_tasks() now return early when called with an empty list of tasks.
  • fix: $fetch_tasks(), $fetch_finished_tasks(), and $fetch_new_tasks() no longer fail when task hashes have been removed from the database. Affected tasks are dropped with a warning.
  • fix: $fetch_failed_tasks() and related methods now return the documented condition column holding the whole condition object.
  • feat: The extra argument of $push_tasks(), $push_running_tasks(), and $finish_tasks() methods is deprecated in favor of the consistently named xss_extra and yss_extra arguments.
  • fix: $start_local_workers() no longer generates unparseable worker startup code on Windows or when the temporary directory path contains quotes. The temporary arguments file is now deleted after the worker reads it.
  • fix: $stop_workers() no longer errors when a requested worker id is not running. Such ids are now skipped with a warning.
  • perf: $wait_for_tasks() no longer reads the full finished list and failed task set on every poll.
  • fix: $worker_script() no longer logs the Redis password. The logged script shows <redacted> instead. The method now returns the script visibly.
  • fix: RushWorker$new() now errors when the heartbeat process fails to set the heartbeat key within the startup timeout instead of silently registering a dead heartbeat. heartbeat_period and heartbeat_expire must now be at least 1 second, and heartbeat_expire must be at least heartbeat_period seconds.
  • fix: $reset() now also resets the internal log counter, so $print_log() no longer skips messages when the same network id is reused after a reset.
  • fix: $reset() now deletes all keys in a single MULTI/EXEC transaction so a concurrent reader can no longer observe a half-reset network.
  • feat: rush_plan() gains the start_worker_timeout argument, which sets the default timeout used by $wait_for_workers(). An explicit timeout passed to $wait_for_workers() is no longer overridden by the configuration.
  • fix: start_worker() no longer errors on exit when message_log or output_log is set. The sinks are now reverted before the log connections are closed.
  • perf: $worker_info reads all workers in one pipelined round trip.
  • refactor: Large objects are now stored under UUID keys.

rush 1.1.0

CRAN release: 2026-04-24

  • fix: $detect_lost_workers() no longer creates phantom failed tasks when a worker crashes between task evaluations (#89).
  • fix: $fetch_new_tasks() now correctly tracks seen results by using the actual cache size instead of the Redis counter, fixing cases where new results could be missed or duplicated.
  • fix: $write_hashes() now requires all value lists to have the same length or length 1 instead of recycling. Length mismatches raise an error (#87).
  • fix: rsh() no longer accepts ... (which was ignored).

rush 1.0.1

CRAN release: 2026-04-04

  • fix: $start_workers() now strips the enclosing environment from worker_loop before serialization, avoiding bloated Redis payloads when the function is a closure.
  • fix: $fetch_tasks() and related methods no longer fail when task parameters contain vector values instead of scalars.

rush 1.0.0

CRAN release: 2026-03-18

  • feat: Add $push_finished_tasks() method.
  • feat: Combine $wait_for_new_tasks() and $fetch_new_tasks() into $fetch_new_tasks() with timeout argument.
  • refactor: The $wait_for_finished_tasks() method is removed.
  • perf: Cache is now a data.table() instead of a list. data_format argument is removed.
  • refactor: Seed mechanism is removed. Includes with_rng_state(), is_lecyer_cmrg_seed(), get_random_seed(), set_random_seed(), make_rng_seeds() helper functions.
  • refactor: PID is no longer stored with tasks by $push_tasks() and $push_running_tasks() methods.
  • refactor: worker_extra field is renamed to worker_id.
  • refactor: $push_results() is renamed to $finish_tasks().
  • fix: Heartbeat process moves worker to terminated.
  • refactor: $push_results() is deprecated. Use $finish_tasks() instead.
  • refactor: $push_failed() is deprecated. Use $fail_tasks() instead.
  • refactor: $terminated_on_idle is removed.
  • refactor: Removed $push_priority_tasks(), $n_queued_priority_tasks, $priority_info, and $fetch_priority_tasks().
  • fix: Redis with password is supported now.
  • refactor: Remove $restart_workers() method.
  • refactor: Squashed "terminated", "killed" and "lost" worker states into "terminated".
  • feat: Added push_failed_tasks() for creating failed tasks.
  • refactor: Remove reset_cache arguments in favor of $reset_cache() method.
  • refactor: network_id, config and connector are now active bindings with validation.
  • refactor: Removed $snapshot_schedule() and $redis_info() methods.
  • refactor: Removed $all_workers_terminated and all_workers_lost active bindings.
  • refactor: Moved $worker_states to $worker_info.
  • feat: Add "rush.max_object_size" option to limit the size of objects stored in Redis.
  • refactor: Renamed $start_remote_workers() to $start_workers().
  • feat: Add $reset_data() method to reset task data without resetting the network.
  • fix: rush_plan() now allows script workers.
  • fix: Default heartbeat expire is now correctly calculated as three times the heartbeat period.
  • fix: Message and output log file connections are now properly closed when the worker exits.
  • perf: Network-specific Redis keys are now deleted once during $reset() instead of once per worker.

rush 0.4.1

CRAN release: 2025-11-06

  • feat: The $wait_for_workers() method can now wait for a specific number of workers or a specific set of worker ids. The workers are checked for registration in the network now.

rush 0.4.0

CRAN release: 2025-10-08

  • feat: Add $empty_queue() method.
  • fix: Queued tasks can be moved to failed now.

rush 0.3.1

CRAN release: 2025-09-16

  • feat: Change default of n_workers.

rush 0.3.0

CRAN release: 2025-07-31

  • feat: Output and message logs can be written to files now via the message_log and output_log arguments.
  • compatibility: lgr 0.5.0
  • BREAKING CHANGE: The mlr3 ecosystem has a base logger now which is named mlr3. The mlr3/rush logger is a child of the mlr3 logger and is used for logging messages from the rush package.

rush 0.2.0

CRAN release: 2025-05-30

  • feat: Worker can be started with the mirai package now.

rush 0.1.2

CRAN release: 2024-11-06

  • feat: Add $reconnect() method.

rush 0.1.1

CRAN release: 2024-07-05

  • fix: Rush class was not exported.
  • fix: R6 package was not imported.

rush 0.1.0

CRAN release: 2024-06-20

  • Initial CRAN submission.