The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Async & Background Tasks in RDesk

# RDesk async functions work safely in non-interactive mode
RDesk::rdesk_jobs_pending()  # returns 0 when no jobs running
#> [1] 0

The three tiers of async in RDesk

RDesk provides three levels of async support. Start at Tier 1. Move to Tier 2 or 3 only when you need something Tier 1 cannot do.

RDesk Loading Overlay & Progress Hook
RDesk Loading Overlay & Progress Hook

Tier 2 – rdesk_async() (manual control)

Use rdesk_async() when you need manual control over the UI state or multiple progress updates:

app$on_message("long_job", function(payload) {
  job_id <- rdesk_async(
    task = function(x) { 
       # Perform multiple steps, each reporting progress
       for(i in 1:5) { 
         Sys.sleep(1) 
         # Note: You can send progress manually or 
         # rely on the final on_done. 
       }
       x * 2 
    },
    args = list(x = 10),
    on_done = function(res) {
      # Hide overlay when task finishes
      app$send("__loading__", list(active = FALSE))
      app$send("job_finished", list(result = res))
    }
  )
  # Show overlay with explicit message and job_id for cancellation
  app$send("__loading__", list(
    active = TRUE, 
    message = "Starting long job...", 
    job_id = job_id,
    progress = 10 # Initial progress
  ))
})

Tier 3 – mirai direct (expert use)

Use mirai::mirai() directly when you need: - Custom daemon counts per task type. - Task chaining or pipelines. - Integration with other mirai-aware packages.

One rule that applies to all three tiers

Background workers are completely isolated from the main R session. They cannot see your variables, your loaded data, or your functions unless you pass them explicitly through args.

This is not a limitation – it makes your code reproducible and safe.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.