【发布时间】:2018-02-07 09:02:17
【问题描述】:
我想在foreach 中插入一个这样的超时控制:
#Parallel function
runnable_X<-function(ID) {
require(R.utils)
Sys.sleep(ID)
return(ID)
}
#foreach function with timeout
foreach_timeOut<-function() {
tryCatch({
require(R.utils)
withTimeout({
out_list<-foreach(ID=c(1:20),.options.multicore=list(preschedule=FALSE)) %dopar% runnable_X(ID)
},
timeout=5); ### Cumulative Timeout for entire process
}, TimeoutException=function(ex) {
return("Time Out!")
})
}
library(doParallel)
require(R.utils)
#Parallel registration
registerDoParallel()
#NUmber of cores
options(cores=5)
foreach_timeOut()
我有这个错误:
Error in runnable_X(ID) :
task 1 failed - "could not find function "runnable_X""
如果我在 foreach_timeout 中声明 runnable_X 函数,这不会发生,但我不能这样做。
【问题讨论】:
标签: r function foreach timeout