我尝试使用 taskscheduleR
库每分钟运行一次脚本。我正在按照 GitHub 页面中的示例进行操作,但遇到了以下问题:
- R 表示任务已创建但脚本未正确执行(它应该以追加模式将数据写入文件 - 有问题的文件已经存在)
- 我没有看到任何日志文件 - 我认为它们应该存储在与正在执行的脚本相同的位置
- 使用
taskscheduler_delete("rds_task")
删除任务不起作用
这是我的代码:
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 任务计划程序(我的电脑是法语的 - 无法更改,抱歉):
与 R 加载项的结果相同,只是我似乎能够以这种方式删除任务。我在我的计算机上拥有管理员权限(因此它不应该是与访问相关的问题)。
最佳答案
解决此问题的最佳解决方案 - 完全按预期工作是使用 Windows .bat 文件运行脚本并使用 Windows 调度程序安排它。
.bat 文件包含使用命令提示符 (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' 告诉 Windows 在批处理模式下使用命令提示符执行它。下一个字符串是您要使用 R 执行的脚本的位置 - 在此处提供完整的文件路径。
将此复制到任何文本编辑器程序,并在保存时指定“.bat”作为扩展名。
您可以在 Windows 任务计划程序中创建一个“基本任务”,以按要求的时间间隔或基于其他触发器执行程序/脚本。要执行的脚本将是上面创建的 .bat 文件。关于如何创建此类任务的视频教程(如 youtube 上的这个)有很多,所以我不会在这里详细介绍。
关于R taskscheduleR不执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47796662/