R taskscheduleR不执行脚本

时间:2017-12-13 15:25:16

标签: r scheduled-tasks taskscheduler schtasks.exe

我尝试使用taskscheduleR库每分钟运行一次脚本。我跟随GitHub页面中的示例,但遇到了以下问题:

  1. R表示已创建任务但脚本未正确执行(它应该以追加模式将数据写入文件 - 该文件已存在)
  2. 我没有看到任何日志文件 - 我相信它们应该存储在与正在执行的脚本相同的位置
  3. 使用taskscheduler_delete("rds_task")删除任务不起作用
  4. 这是我的代码:

    taskscheduler_create(taskname = "rds_task", 
                         rscript = "./Testing_Scheduler/testing_scheduler.R",
                         schedule = "MINUTE", 
                         starttime = format(Sys.time() + 30, "%H:%M"), 
                         startdate = format(Sys.time(), "%d/%m/%Y"),
                         modifier = 1)
    

    testing_scheduler.R的内容:

    dat <- mtcars
    data.table::fwrite(dat[1, ], "./Testing_Scheduler/testfile.txt", append = T)
    

    要删除任务,我使用了:

    taskscheduler_delete("rds_task")
    

    哪个不成功。我最终使用Windows任务计划程序(我的计算机是法语 - 不能改变它,抱歉):

    Deleting task in Windows Task Scheduler

    与R加载项相同的结果,除了我似乎能够以这种方式删除任务。我在我的计算机上拥有管理员权限(所以它不应该是与访问相关的问题)。

    感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

围绕此问题的最佳解决方案 - 与预期完全一致的是使用Windows .bat文件来运行脚本并使用Windows调度程序安排它。

.bat文件包含使用commamnd prompt(cmd)运行R.exe并执行指定的R代码的命令:

@echo on
"C:\Program Files\R\R-3.4.2\bin\x64\R.exe" CMD BATCH C:\Users\gma\Desktop\R_Task\script1.R

以上是.bat文件的所有内容。第一个字符串(在引号中)是系统上安装R的位置。 'CMD'和'BATCH'告诉窗口在批处理模式下使用命令提示符执行它。下一个字符串是您要使用R执行的脚本的位置 - 在此处提供完整的文件路径。

将其复制到任何文本编辑器程序,保存时,指定“.bat”作为扩展名。

您可以在Windows任务计划程序中创建一个“基本任务”,该任务以所需的时间间隔或基于其他触发器执行程序/脚本。要执行的脚本是上面创建的.bat文件。有关如何创建此类任务的大量视频教程(如youtube上的这一篇),所以我不会在这里详细介绍。