【问题标题】:Schedule task to run multiple overlapping instances of the same R script调度任务以运行同一 R 脚本的多个重叠实例
【发布时间】:2018-11-27 23:53:39
【问题描述】:

我试图每小时运行一个 R 脚本,从 API 下载数据,对其进行操作,然后写出一些产品。每次运行需要 3-5 小时,但我似乎无法安排一个同时成功运行多个实例的任务。

  • 我使用 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 小时运行一次。
  • 我尝试启动 R Studio GUI 的两个单独实例并在两个单独实例中运行代码:它工作正常。这表明代码本身不会锁定文件,并且可以使用相同的密钥同时调用 API。
  • 我安排了两个不同的任务,调用了两个不同的批处理文件,每个批处理文件调用了具有不同输出目录的不同脚本文件:它成功了。
  • 我安排了两个不同的任务,以 5 分钟的间隔调用同一个批处理文件:第一个运行,第二个没有。
  • 我也尝试了 Rcmd.exe 以防万一基于另一个线程,但它没有解决问题

我的猜测是我在批处理文件中遗漏了一些东西,它允许它从同一个批处理文件中运行不同的 R 实例,但我不知道它是什么。

【问题讨论】:

    标签: r windows batch-file taskscheduler


    【解决方案1】:

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

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

    这不是很好,所以欢迎更好的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      相关资源
      最近更新 更多