代码停止执行另一个代码

时间:2016-03-18 12:40:41

标签: r exit halt

我有一个R代码,可以进行一些数据分析并返回TRUE/FALSE。 有时,输入数据太大而代码只是继续运行。

我想要一个监控我的数据分析代码的脚本,如果它没有返回任何内容,比如600 seconds,那么它会暂停正在运行的代码并执行其他操作。

就像按STOP上的R console按钮一样。

我知道stopbreakexit等等。但这些都不会有用,因为代码不会达到这些陈述,因为它仍然是运行其数据分析循环。

3 个答案:

答案 0 :(得分:7)

您可以使用setTimeLimit()并让您的主脚本调用辅助脚本,该脚本将在开始时具有此功能。

setTimeLimit(elapsed = 10)
for(i in c(1:100)){
    cat(i,"\n")
    Sys.sleep(1)
}

这是您期望它如何工作的一个示例。 10秒后,我的工作将达到时间限制,尽管循环想要计数到100,每秒增加一个增量。

答案 1 :(得分:0)

这不是使用脚本监控其他流程的真正解决方案,但在Linux上,您可以在开始分析之前使用<video src="{{Your_URL | trustUrl}}" controls></video> ,例如使用ulimit -t 300

当cpu时间超过300秒时,内核将终止你的工作。请注意,这适用于ulimit命令后从同一控制台执行的所有命令。

答案 2 :(得分:0)

另一个不是真正的答案。有时我必须循环遍历我的数据集的每一行,或者我必须将10 000个数据集合并为一个。

当我在循环中执行此操作时,我隐藏

k <- k  + 1 
print(k)

所以我可以追踪我的代码,看看我已经做了多少。 Ofcoruse你可以通过proc.time(

)改进这个并跟踪每个循环之间的时间