R-如何检测/处理rscript中的用户中断



我有一个R脚本,该R脚本通过Rscript.exe设计为命令行执行,其中包含一个长期运行循环,该循环进行API调用,并将结果写入数据库。该脚本包括通过trycatch进行错误处理数据库清理的错误处理:

trycatch({
  # api and database call loop
}, finally = {
  # database cleanup
})

这可以很好地处理API和数据库错误,但是用户间断(Bash Ctrl C)终止执行而无需触发finally块。

有什么方法可以允许用户输入启动的优美退出?这可能是一种检测硬中断并处理它的方法,或者是每循环一次检查一次键盘输入的方法(而无需暂停循环等待输入)。

您是否尝试在错误子句中添加?

trycatch({
    # api and database call loop
    }, 
    error=function(e) {   
            message(paste("ERROR:", e))
            #implement graceful exit
            return(NULL) #or whatever value you want
    },
    finally = {
    # database cleanup
    }
)

最新更新