当前位置: 首页 > 知识库问答 >
问题:

R 任务cheduleR 不执行脚本

谢志用
2023-03-14

我尝试使用< code>taskscheduleR库每分钟运行一次脚本。我正在遵循GitHub页面上的示例,但是遇到了以下问题:

    < li>R表示任务已创建,但脚本未正确执行(它应该以追加模式将数据写入文件-有问题的文件已经存在) < li >我没有看到任何日志文件-我认为它们应该存储在与正在执行的脚本相同的位置 < li >使用< code > task scheduler _ 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加载项的结果相同,只是我似乎能够以这种方式删除任务。我的计算机上具有管理员权限(因此这应该不是与访问相关的问题)。

共有1个答案

臧兴学
2023-03-14

解决这个问题的最佳解决方案——完全按预期工作是使用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”告诉窗口在批处理模式下使用命令提示符执行它。下一个字符串是要使用 R 执行的脚本的位置 - 在此处提供完整的文件路径。

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

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

 类似资料:
  • 我试图创建一个带有执行SSIS包步骤的SQL Server作业,该步骤将启动PowerShell脚本,然后在完成后执行一些文件系统任务(在PowerShell脚本成功完成后清理文件系统) 我最初尝试在SQL Server的作业设置中使用PowerShell脚本功能,但我认为SQL Server中的PowerShell环境与本地安装的PowerShell环境并不完全一致,因为我有一个必需的本地安装的

  • 问题内容: 我在String变量中有一个Rscript,我想从Java程序执行它并将一些变量传递给它。如果我独立执行该R脚本,则可以正常工作。我已通过使用Python程序将所有脚本转义,从而将该R脚本转换为一行,如下所示: 我将打印出的字符串用完,并将其存储在String变量中,然后使用以下代码执行,但它根本不起作用。我正在传递和可变到上述R脚本。 上面的代码可以与bash shell脚本一起正常

  • 每隔一段时间需要调度任务执行,也许你想注册一个任务在客户端完成连接5分钟后执行,一个常见的用例是发送一个消息“你还活着?”到远端通,如果远端没有反应,则可以关闭通道(连接)和释放资源。 本节介绍使用强大的 EventLoop 实现任务调度,还会简单介绍 Java API的任务调度,以方便和 Netty 比较加深理解。 使用普通的 Java API 调度任务 在 Java 中使用 JDK 提供的 S

  • 原文链接:Serverless 应用开发指南:CRON 定时执行 Lambda 任务 在上一篇文章《Serverless 应用开发指南:基于 Serverless 的 GitHub Webhook》里,我们介绍了如何用 Webhook 来触发定时的 Lambda 函数。这种方式与我们平时的 CI(持续集成)服务器相似,而CI(持续集成)服务器除了会监听 PUSH 事件。还会执行一些定时的任务,比如

  • 我的域控制器上有一个小脚本,它被设置为通过SMTP向我发送有关最新安全事件4740的电子邮件。 手动执行时,脚本将按预期运行;但是,当设置为通过计划任务运行时,尽管它显示已执行,但没有任何反应(没有电子邮件)。 脚本如下: 计划任务设置如下: 我还尝试了以下方法: 根据任务历史记录:任务开始、行动开始、创建任务流程、行动完成、任务完成。我浏览了网站上一些有着相同“问题”的不同链接,但它们似乎都有一

  • 我试图通过这个Gradle插件https://github.com/theboegl/gradle-launch4j使用http://launch4j.sourceforge.net/。 当我执行时,我会得到以下输出。 这是我的年级版本信息。 这是我的构建脚本。