Планирование сценария R

Я написал скрипт R, который извлекает некоторые данные из базы данных, выполняет несколько операций над ними и публикует результаты в новой базе данных.

Мне бы хотелось, чтобы этот скрипт запускался каждый день в определенное время, но я не могу найти способ сделать это эффективно.

Кто-нибудь может порекомендовать ресурс, на который я мог бы посмотреть, чтобы решить эту проблему? Я запускаю этот скрипт на компьютере с Windows.

6 ответов

На самом деле под Windows вам даже не нужно сначала создавать командный файл, чтобы использовать планировщик.

  • Откройте планировщик: ПУСК -> Все программы -> Аксессуары -> Системные инструменты -> Планировщик
  • Создать новое задание
  • на вкладке Action создайте новое действие
  • выберите Начать программу
  • перейдите к Rscript.exe, который должен быть размещен, например, здесь:
    "C: \ Program Files \ R \ R-3.0.2 \ bin \ x64 \ Rscript.exe"
  • введите имя вашего файла в поле параметров
  • введите путь, где должен быть найден скрипт, в поле Start in
  • перейдите на вкладку Триггеры
  • создать новый триггер
  • выбрать, что задание должно выполняться каждый день, месяц,... повторяться несколько раз или как угодно

Предположим, ваш R скрипт mytest.r, находится в D:\mydocuments\Вы можете создать командный файл, включающий следующую команду:

C:\R\R-2.10.1\bin\Rcmd.exe BATCH D:\mydocuments\mytest.r

Затем добавьте его, как новую задачу, в планировщик задач Windows, установив там условия запуска.

Вы также можете опустить пакетный файл. Задавать C:\R\R-2.10.1\bin\Rcmd.exe в program/script текстовое поле в планировщике задач, и дать как Arguments остальная часть начальной команды: BATCH D:\mydocuments\mytest.r

Планирование задач R с помощью планировщика задач Windows (Опубликовано 11 февраля 2015 г.)

taskscheduleR: пакет R для планирования сценариев R с помощью диспетчера задач Windows (Опубликовано 17 марта 2016 г.)

Теперь для этого есть встроенная опция в RStudio, для запуска планировщика сначала установите следующие пакеты

  install.packages('data.table')
  install.packages('knitr')
  install.packages('miniUI')
  install.packages('shiny')
  install.packages("taskscheduleR", repos = "http://www.datatailor.be/rcube", type = 
  "source")

После установки перейдите в

**TOOLS -> ADDINS ->BROWSE ADDINS ->taskscheduleR -> Select it and execute it.**

Настройка планировщика задач

Шаг 1) Откройте планировщик задач (Пуск> поиск в планировщике задач)

Шаг 2) Нажмите "Действие" > "Создать задачу".

Шаг 3) Выберите "Запускать только при входе пользователя в систему", снимите флажок "Запускать с наивысшими привилегиями", назовите свою задачу, настройте для "Windows Vista/Windows Server 2008"

Шаг 4) На вкладке "Триггеры" укажите, когда вы хотите, чтобы сценарий запускался.

Шаг 5) На вкладке "Действия" укажите полное расположение файла Rscript.exe, т.е.

"C:\Program Files\R\R-3.6.2\bin\Rscript.exe" (include the quotes)

Поместите имя вашего скрипта с помощью -e а также source() в аргументах, обертывающих это так:

-e "source('C:/location_of_my_script/test.R')"

Устранение неполадок Rscript, запланированного в планировщике заданий

Когда вы запускаете сценарий с помощью Планировщика заданий, трудно устранять какие-либо проблемы, потому что вы не получаете сообщений об ошибках.

Это можно решить, используя sink()функция в R, которая позволит вам выводить все сообщения об ошибках в указанный вами файл. Вот как это можно сделать:

# Set up error log ------------------------------------------------------------
error_log <- file("C:/location_of_my_script/error_log.Rout", open="wt")
sink(error_log, type="message")

try({

# insert your code here

})

Еще одна вещь, которую вам нужно будет изменить, чтобы ваш Rscript заработал, - это указать полный путь к любому файлу в вашем скрипте.

Это не будет работать в планировщике задач:

source("./functions/import_function.R")

Вам нужно будет указать полный путь к файлу любых сценариев, которые вы используете в своем Rscript:

source("C:/location_of_my_script/functions/import_function.R")

Я установил свои задачи через SCHTASKS программа. Для запуска скриптов при запуске вы должны написать что-то вроде

SCHTASKS /Create /SC ONSTART /TN MyProgram /TR "R CMD BATCH --vanilla d:\path\to\script.R"

Смотрите этот сайт для более подробной информации о SCHTASKS, Более подробная информация на веб-сайте Microsoft.

Вы можете использовать Windows Task Scheduler.

После выполнения любой комбинации этих шагов, и вы получите "Argument Batch Ignored" ошибка после запуска R.exe, попробуйте это, у меня сработало.

В планировщике задач Windows:

замещать BATCH "C:\Users\desktop\yourscript.R"в поле аргументов

с

CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"

Другие вопросы по тегам