Автоматический запуск R скрипта по расписанию через Windows Task Scheduler
При работе с R скриптом может потребоваться обновлять его автоматически. Пакет “taskscheduleR” помогает настроить расписание для запуска R скрипта в Windows Task Schedule ежедневно, еженедельно, каждые N минут, после запуска Windows и так далее.
- Устанавливаем пакет “taskscheduleR”
library(devtools) install.packages("devtools") install_github("jwijffels/taskscheduleR") library(taskscheduleR)
Используем пакет «devtools», который позволяет скачивать и устанавливать пакеты напрямую с GitHub.
- Далее для настройки запуска скрипта можно воспользоваться либо интерактивной настройкой через форму, либо написав пару строк кода.
Настройка расписания R скрипта в Task Scheduler через Addins:
- Переходим из Addins — > Shedule R scripts on…
- Выбираем файл скрипта. Смотрим месторасположение файла с логами. Настраиваем период запуска и время начала.
Настройка расписания R скрипта через функции пакета taskscheduleR:
Функции пакета:
- Получить список всех задач в Windows Task Sheduler
- Удалить задачу из Windows Task Sheduler
- Добавить задачу запуска R скрипта
- Доступны следующие расписания: ‘ONCE’, ‘MONTHLY’, ‘WEEKLY’, ‘DAILY’, ‘HOURLY’, ‘MINUTE’, ‘ONLOGON’, ‘ONIDLE’
## Указываем название файла R скрипта для последующей работы с ним myscript <- system.file("extdata", "helloworld.R", package = "taskscheduleR") ## Запуск скрипта разово через 35 секунд taskscheduler_create(taskname = "myscript", rscript = myscript, schedule = "ONCE", starttime = format(Sys.time() + 35, "%H:%M")) ## Запуск скрипта ежедневно в 10:15, начиная с завтрашнего дня ## Важно: необходимо поменять формат даты, если он не совпадает с тем, что стоит на компьютере (пример: %m/%d/%Y) taskscheduler_create(taskname = "myscriptdaily", rscript = myscript, schedule = "DAILY", starttime = "10:15", startdate = format(Sys.Date()+1, "%d/%m/%Y")) ## Запуск скрипта каждую неделю в 10:15 по понедельникам taskscheduler_create(taskname = "myscript_mon", rscript = myscript, schedule = "WEEKLY", starttime = "10:15", days = 'MON') ## Запуск каждые 5 минут, начиная с 10:15 taskscheduler_create(taskname = "myscript_5min", rscript = myscript, schedule = "MINUTE", starttime = "10:15", modifier = 5) ## Получить data.frame со всеми задачами tasks <- taskscheduler_ls() str(tasks) ## Удалить задачи taskscheduler_delete(taskname = "myscript") taskscheduler_delete(taskname = "myscriptdaily") taskscheduler_delete(taskname = "myscript_,mon") taskscheduler_delete(taskname = "myscript_5min") taskscheduler_delete(taskname = "myscript_withargs_a") taskscheduler_delete(taskname = "myscript_withargs_b")
На что обращаем внимание:
- Формат даты. Он должен совпадать с форматом даты на компьютере. В противном случае получим либо ошибку настройки расписания запуска скрипта, либо совсем другую дату.
- Активность компьютера. Компьютер должен быть включен в момент запуска скрипта
- Наличие других расписаний скрипта. При настройке нового расписания с тем же названием, предыдущее расписание удаляется.
комментария 3
[…] Более детально о том, как настроить расписание запуска R скрипта. […]
[…] не будем, так как у Анастасии Каминской есть отличная статья на эту […]
[…] 5. Запустить по крону его через 5 минут https://2steps.pro/r-script-launching-with-task-scheduler.html 6. Если все ок, то ставим крон на […]