I'm tring to insert in a foreach
a timeout control like this:
#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()
I have this error:
Error in runnable_X(ID) :
task 1 failed - "could not find function "runnable_X""
If I declare runnable_X
function inside foreach_timeout
this doesn't happen, but I can't do this.