相关疑难解决方法(0)

setTimeLimit如何在R中工作?

我想setTimeLimit()在R中掌握并且我的经验导致了几个相关的问题,所以也许根本问题是:这是如何真正起作用的?(我一直在寻找evalWithTimeout()R.utils,以及,它可能适合我的目的稍微好一点,但它是建立在此功能).

以下是我想弄清楚的关键事项:

  1. 它如何监控经过的时间?即它似乎插入流控制,所以它是如何做到的?能够拥有"后台"流程很酷,可用于报告状态,检查点等.

  2. 我可以确定触发前剩余的时间吗?我意识到我可以将它包装起来并在某处保存在调用点(即输出proc.time())附近消耗的已用时间和CPU时间.但是,这个功能已经在某处存储了这些功能,我想知道在哪里,或者至少知道如何确定剩余的时间.

  3. 如果R控制台空闲,是否可以做一些有用的事情?能够监控elapsed.time()并且cpu.time()非常有用.我希望能够监视R何时处于空闲状态,但似乎需要修改它需要提交或完成命令.而且,仅输出错误不会触发后续操作.(也许我需要更多关注evalWithTimeout.)

  4. 帮助信息表明它可以适用于C或Fortran,但不提供示例.有关如何做到这一点的任何建议?

r timer

11
推荐指数
1
解决办法
1401
查看次数

有没有办法在使用DBI和dbGetQuery时超时MySql查询?

我意识到了

dbGetQuery comes with a default implementation that calls dbSendQuery, then dbFetch, ensuring that the result is always freed by dbClearResult.

dbClearResult frees all resources (local and remote) associated with a result set. In some cases (e.g., very large result sets) this can be a critical step to avoid exhausting resources (memory, file descriptors, etc.)

但我的团队刚刚经历了一个锁定的表,我们进入了MySQL kill pid,我想知道 - 有没有办法超时使用该DBI包提交的查询?

我正在寻找,找不到相应的

dbGetQuery(conn = connection, 'select stuff from that_table', timeout = 90)

我尝试了这个,并使用和不使用参数集来分析函数,它似乎没有做任何事情; 为什么会这样,如果dbClearResult总是在玩?

mysql timeout r jdbc r-dbi

8
推荐指数
1
解决办法
789
查看次数

R - 在循环中设置执行时间限制

我有一个脚本使用rNOMADS包下载预测数据.目前,它使用for循环按顺序调用每三小时预测间隔的预测下载功能.问题是下载功能偶尔会随机"冻结",迫使我终止R并开始进程.当它冻结时,代码会在下载功能中挂起几分钟,而不是执行所需的典型<1秒,然后当我尝试暂停执行时,我收到一条消息,说"R没有响应您的中断处理请求,所以停止你可能需要完全终止R的当前操作."

有没有办法为每个for循环迭代中的特定代码块设置时间限制,然后跳过该代码块并在达到时间限制时抛出错误?像tryCatch这样的东西,我可以用它来引发一个标志来重新做循环迭代吗?

就像是:

for (i in 1:N) {
   ...

   setTimeLimit(XXX seconds) {
      downloadFunction()
   } timeLimitReached {
      doOverFlag <- 1
   }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

r

7
推荐指数
2
解决办法
2961
查看次数

在 R 中运行指定时间的函数

我正在尝试让一个函数运行指定的时间,目前我正在尝试使用该system.time函数。我不知道如何定义一个新变量来获取函数运行的累积值,然后将其放入 while 循环中。

timer<-(system.time(simulated_results<-replicate(n=1,simulation(J,10000,FALSE,0.1),simplify="vector"))[3])

print(timer)

while(cumsum(timer)<15){
    print(cumsum(timer)) 
    simulated_results<-replicate(n=10000,simulation(J,10000,FALSE,0.1),simplify="vector")
}
Run Code Online (Sandbox Code Playgroud)

我将非常感谢任何帮助!

r

3
推荐指数
1
解决办法
890
查看次数

标签 统计

r ×4

jdbc ×1

mysql ×1

r-dbi ×1

timeout ×1

timer ×1