安排任务以运行同一R脚本的多个重叠实例

时间:2018-06-19 05:36:48

标签: r windows batch-file taskscheduler

我正在尝试每小时运行一个R脚本,从API下载数据,操作它并写出一些产品。每次运行需要3-5h,但我似乎无法安排一个可以同时成功运行多个实例的任务。

  • 我使用Windows(10)任务计划程序来计划在给定时间触发的任务,然后每1小时重复一次。
  • 无论是否使用最高权限登录,我都会运行它(没有问题)
  • 该操作涉及运行包含以下文本的.bat文件:

    @echo on start "" "C:\Program Files\R\R-3.4.2\bin\x64\R.exe" CMD BATCH --vanilla F:\storm\src\download_rasters.R

  • 如果任务已在运行,我将其设置为'并行运行新实例'

现在,我是批处理文件和任务调度的新手,但这里有一些故障排除线索:

  • 如果我将任务计划为每小时运行一次,代码将在第一次成功运行,但在第一个实例完成之前(大约4小时后)将不再运行,因此最终每4小时运行一次。< / LI>
  • 我尝试启动R Studio GUI的两个独立实例,并在两个单独的实例中运行代码:它工作正常。这表明代码本身不会锁定文件,并且可以使用相同的密钥同时调用API。
  • 我安排了两个不同的任务,调用两个不同的批处理文件,每个文件使用不同的输出目录调用不同的脚本文件:它工作正常。
  • 我安排了两个不同的任务,每隔5分钟调用同一个批处理文件:第一个运行,第二个没有运行。
  • 我也尝试过Rcmd.exe以防万一基于另一个线程,但它没有解决问题

我的猜测是我在批处理文件中遗漏了一些东西,它允许它从同一批处理文件中运行R的单独实例,但我无法弄清楚它是什么。

1 个答案:

答案 0 :(得分:0)

我通过使用批处理文件直接运行R命令来获取脚本来使其工作。

@echo off "C:\Program Files\R\R-3.4.2\bin\x64\R.exe" -e source('F:/storm\src\download_rasters.R')

这不是很好,因此欢迎更好的解决方案。