rexithalt

Code to stop execution of another code


I have a R code which does some data analysis and returns TRUE/FALSE. Sometimes, the input data is too large and the code just keeps running.

I want a script that will monitor my data analysis code and if it doesn't return anything, in say 600 seconds, then it halts the running code and do something else.

It will be like pressing STOP button on R console.

I know about stop, break, exit, etc. But these won't be useful because code won't reach to these statements as it is still running its data analysis loop.


Solution

  • You can use setTimeLimit() and have your main script call a secondary script which will have this function at the start.

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

    this is an example of how you would expect it to work. After 10 seconds my job will reach the time limit, despite the loop wanting to count to 100, increasing an increment every second.