Skip to contents

Fetch information about a task. This is much more detailed than the information in task_status. If a task is running we also fetch the true status via its driver, which can be slower.

Usage

task_info(id, follow = TRUE, root = NULL)

Arguments

id

A single task id to fetch information for

follow

Logical, indicating if we should follow any retried tasks.

root

A hipercow root, or path to it. If NULL we search up your directory tree.

Value

An object of class hipercow_task_info, which will print nicely. This is just a list with elements:

  • id: the task identifier

  • status: the retrieved status

  • driver: the driver used to run the task (or NA)

  • data: the task data (depends on the type of task)

  • times: a vector of times

  • retry_chain: the retry chain (or NULL)

You can see and access these elements more easily by running unclass() on the result of task_info().

Examples

cleanup <- hipercow_example_helper()
#>  This example uses a special helper
id <- task_create_expr(runif(1))
#>  Submitted task '2f9e3f340de788f4782579a41bf21b4b' using 'example'
task_wait(id)
#> [1] TRUE

# Task information at completion includes times:
task_info(id)
#> 
#> ── task 2f9e3f340de788f4782579a41bf21b4b (success) ─────────────────────────────
#>  Submitted with 'example'
#>  Task type: expression
#>   • Expression: runif(1)
#>   • Locals: (none)
#>   • Environment: default
#>     R_GC_MEM_GROW: 3
#>  Created at 2025-02-12 17:20:11.5479 (moments ago)
#>  Started at 2025-02-12 17:20:11.742025 (moments ago; waited 195ms)
#>  Finished at 2025-02-12 17:20:11.836621 (moments ago; ran for 95ms)

# If you need to work with these times, use the "times" element:
task_info(id)$times
#>                   created                   started                  finished 
#> "2025-02-12 17:20:11 UTC" "2025-02-12 17:20:11 UTC" "2025-02-12 17:20:11 UTC" 

# If a task is retried, this information appears as a retry chain:
id2 <- task_retry(id)
#>  Submitted task 'e7b55b7e84a4eeb3f4203cc53ccd0110' using 'example'
task_info(id2, follow = FALSE)
#> 
#> ── task e7b55b7e84a4eeb3f4203cc53ccd0110 (success) ─────────────────────────────
#>  Submitted with 'example'
#>  Task type: expression
#>   • Expression: runif(1)
#>   • Locals: (none)
#>   • Environment: default
#>     R_GC_MEM_GROW: 3
#>  Created at 2025-02-12 17:20:11.5479 (moments ago)
#>  Started at 2025-02-12 17:20:12.642268 (moments ago; waited 1.1s)
#>  Finished at 2025-02-12 17:20:12.643189 (moments ago; ran for 1ms)
#>  Last of a chain of a task retried 1 time
task_info(id2)
#> 
#> ── task e7b55b7e84a4eeb3f4203cc53ccd0110 (success) ─────────────────────────────
#>  Submitted with 'example'
#>  Task type: expression
#>   • Expression: runif(1)
#>   • Locals: (none)
#>   • Environment: default
#>     R_GC_MEM_GROW: 3
#>  Created at 2025-02-12 17:20:11.5479 (moments ago)
#>  Started at 2025-02-12 17:20:12.642268 (moments ago; waited 1.1s)
#>  Finished at 2025-02-12 17:20:12.643189 (moments ago; ran for 1ms)
#>  Last of a chain of a task retried 1 time

cleanup()
#>  Cleaning up example