定义命令启动的回调

Jim*_*Jim 3 r

我正在尝试自动执行所有顶级表达式. 任务处理程序几乎都是需要的,但只有在命令完成后才会调用它们,而不是之前.

另一种方法是修改要包装的每个顶级表达式system.time,但是我也不知道这样做的方法.

Jim*_*Jim 8

为了完整性,这里有一个函数,您可以将其用作任务回调,以自动为任何运行时间超过5秒的顶级命令生成系统通知.

# devtools::install_github("gaborcsardi/notifier")
notify_long_running <- function(second_cutoff = 5) {
  last <- proc.time()[1]
  function(expr, value, ok, visible) {
    duration <- proc.time()[1] - last
    if (duration > second_cutoff) {
      notifier::notify(msg = paste0(collapse = " ", deparse(expr)),
                       title = sprintf("Completed in %.02f (s)", duration))
    }
    last <<- proc.time()[1]
    TRUE
  }
}

addTaskCallback(notify_long_running())
Run Code Online (Sandbox Code Playgroud)