R taskscheduleR не выполняет скрипт

Я пытаюсь запускать скрипт каждую минуту, используя библиотеку taskscheduleR. Я следую примерам со страницы GitHub, но сталкиваюсь со следующими проблемами:

  1. R говорит, что задача создана, но скрипт не выполняется должным образом (он должен записывать данные в файл в режиме добавления - рассматриваемый файл уже существует)
  2. Я не вижу никаких файлов журнала — я считаю, что они должны храниться в том же месте, что и исполняемый скрипт.
  3. Удаление задачи с помощью 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 (мой компьютер на французском языке - не могу это изменить, извините):

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

Тот же результат с надстройкой R, за исключением того, что я, кажется, могу удалить задачу таким образом. У меня есть права администратора на моем компьютере (так что это не должно быть проблемой, связанной с доступом).

Любая помощь приветствуется!


person Gautam    schedule 13.12.2017    source источник
comment
Вам нужно указать полный путь в аргументе rscript. Не относительный путь. В taskscheduler_delete это очень похоже на отсутствие прав на вашем компьютере для этого. Спросите у администратора, почему вы не можете удалить задачу с помощью schtasks.exe   -  person    schedule 19.12.2017
comment
Спасибо за ваш вклад - я попытаюсь указать полный путь и посмотреть, работает ли это - я думаю, что пробовал это раньше, но я не уверен. Мой текущий обходной путь — создать файл .bat, который запускает R с помощью CMD. У меня есть права администратора, и я могу удалить задачу с помощью планировщика задач Windows. На самом деле, я могу удалять задачи из MATLAB.   -  person Gautam    schedule 19.12.2017


Ответы (1)


Лучшее решение этой проблемы, которое работает точно так, как ожидалось, - это использовать файл Windows .bat для запуска сценария и планирования его с помощью планировщика Windows.

Файл .bat содержит команды для запуска R.exe с помощью командной строки (cmd) и выполнения указанного кода 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) о том, как создавать такие задачи. так что я не буду вдаваться в подробности здесь.

person Gautam    schedule 11.04.2018