He escrito un script R que extrae algunos datos de una base de datos, realiza varias operaciones en él y publica el resultado en una nueva base de datos.
Me gustaría que este script se ejecutara todos los días a una hora específica, pero no puedo encontrar ninguna forma de hacerlo de manera efectiva.
¿Alguien puede recomendar un recurso que pueda consultar para resolver este problema? Estoy ejecutando este script en una máquina con Windows.
.R
y NO.r
.Suponiendo que su script R está
mytest.r
ubicado enD:\mydocuments\
, puede crear un archivo por lotes que incluya el siguiente comando:Luego agréguelo, como una nueva tarea, al programador de tareas de Windows, estableciendo allí las condiciones de activación.
También puede omitir el archivo por lotes. Establezca
C:\R\R-2.10.1\bin\Rcmd.exe
en elprogram/script
cuadro de texto en el programador de tareas y proporcioneArguments
el resto del comando inicial:BATCH D:\mydocuments\mytest.r
Programación de tareas de R a través del programador de tareas de Windows (publicado el 11 de febrero de 2015)
taskscheduleR: paquete R para programar scripts R con el administrador de tareas de Windows (publicado el 17 de marzo de 2016)
EDITAR
Recientemente adopté nuevamente el uso de archivos por lotes, porque quería que la ventana de cmd se minimizara (no pude encontrar otra manera).
Específicamente, lleno la
Actions
pestaña del programador de tareas de Windows de la siguiente manera:Program/script:
cmd.exe
Add arguments (optional):
/ c inicio / min D: \ mydocuments \ mytest.bat ^ & salir
Contenido de mytest.bat :
C: \ R \ R-3.5.2 \ bin \ x64 \ Rscript.exe D: \ mydocuments \ mytest.r params
fuente
Rscript
Es preferible usarR BATCH
. Los sistemas que pueden diferenciar entre minúsculas y mayúsculas también obtienenr
.Ahora hay una opción incorporada en RStudio para hacer esto, para ejecutar el programador primero instale los siguientes paquetes
Después de la instalación, vaya a
fuente
Configuré mis tareas a través del
SCHTASKS
programa. Para ejecutar scripts en el inicio, escribiría algo comoConsulte este sitio web para obtener más detalles sobre
SCHTASKS
. Más detalles en el sitio web de Microsoft .fuente
Puede utilizar el Programador de tareas de Windows .
fuente
Configurar el programador de tareas
Paso 1) Abra el programador de tareas (Inicio> buscar Programador de tareas)
Paso 2) Haga clic en "Acción"> "Crear tarea"
Paso 3) Seleccione "Ejecutar solo cuando el usuario haya iniciado sesión", desmarque "Ejecutar con los más altos privilegios", asigne un nombre a su tarea, configure para "Windows Vista / Windows Server 2008"
Paso 4) En la pestaña "Activadores", establezca cuándo desea que se ejecute el script
Paso 5) En la pestaña "Acciones", coloque la ubicación completa del archivo Rscript.exe, es decir
Ponga el nombre de su script con
-e
ysource()
en argumentos envolviéndolo así:Solución de problemas de un Rscript programado en el Programador de tareas
Cuando ejecuta un script con el Programador de tareas, es difícil solucionar cualquier problema porque no recibe ningún mensaje de error.
Esto se puede resolver usando la
sink()
función en R que le permitirá enviar todos los mensajes de error a un archivo que usted especifique. Así es como puede hacer esto:La otra cosa que tendrá que cambiar para que su Rscript funcione es especificar la ruta de archivo completa de cualquier ruta de archivo en su secuencia de comandos.
Esto no funcionará en el programador de tareas:
Deberá especificar la ruta completa del archivo de cualquier script que esté obteniendo dentro de su Rscript:
fuente
Después de seguir cualquier combinación de estos pasos y recibe el
"Argument Batch Ignored"
error después de que se ejecuta R.exe, intente esto, funcionó para mí.En el Programador de tareas de Windows:
Reemplazar
BATCH "C:\Users\desktop\yourscript.R"
en el campo de argumentoscon
CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"
fuente